저는 Linux와 명령의 세계를 처음 접했습니다. 나는 두 개의 디렉토리를 가지고 있습니다. 하나는 pasta
(3개의 파일을 포함하고 있습니다) 다른 하나는 pasta2
(아무 것도 없습니다). find 명령을 사용하여 3개 파일을 모두 에서 pasta
. pasta2
하지만 다음과 같은 오류가 발생합니다. 어떤 제안이 있으십니까?
주문하다:
find pasta -type f -exec mv pasta2 {} \;
나는 다음과 같은 결과를 얻습니다.
mv: cannot overwrite non-directory `pasta/tmp3' with directory `pasta2'
mv: cannot overwrite non-directory `pasta/tmp1' with directory `pasta2'
mv: cannot overwrite non-directory `pasta/tmp2' with directory `pasta2'
답변1
구문이 mv
잘못되었습니다. 그것은해야한다:
mv source destination
당신은 달리고 있다
mv destination source
따라서 find
명령이 실제로 실행 중입니다.
mv pasta2 pasta/tmp3
mv pasta2 pasta/tmp2
mv pasta2 pasta/tmp1
mv
일반 파일로 디렉터리를 덮어쓰려고( ) 한다고 불평합니다 . 당신이 정말로 하고 싶은 일은
find pasta -type f -exec mv {} pasta2 \;
이 실행됩니다
mv pasta/tmp3 pasta2
mv pasta/tmp2 pasta2
mv pasta/tmp1 pasta2
오류 없이 실행되어야 합니다.