Linux 셸 - 예상치 못한 오류

Linux 셸 - 예상치 못한 오류

저는 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 

오류 없이 실행되어야 합니다.

관련 정보