find 명령에는 결과에 현재 디렉토리도 포함되므로 이동할 필요가 없습니다.

find 명령에는 결과에 현재 디렉토리도 포함되므로 이동할 필요가 없습니다.

특정 크기보다 큰 파일을 찾아 다른 디렉터리로 이동할 수 있는 스크립트를 작성하려고 하는데 find 명령에는 결과에 현재 디렉터리도 포함되므로 이동할 필요가 없습니다. 그리고 내가 받는 소식은

$ find -size +2000c -print0 | while IFS= read -r -d $'\0' file; do mv $file ~/wrkbnch; done

mv: cannot move '.' to '/home/jerry/wrkbnch/.': Device or resource busy

답변1

당신이 찾고 있다면문서, 반드시 find다음과 같은 방법으로 알려 주시기 바랍니다 -type f.

find . -type f -size +2000c -exec mv {} "$HOME/wrkbnch" ';'

귀하의 코드:

find -size +2000c -print0 |
while IFS= read -r -d $'\0' file; do
    mv $file ~/wrkbnch
done

여기서 빠진 두 가지는

  1. -type f에 대한 find
  2. $file큰따옴표는 이상한 파일 이름을 처리 하는 데 사용됩니다 (예: *.

자세한 내용 IFS= read -r은 ""IFS=read -r line"을 이해하셨나요?"(구분 기호를 구체적으로 지정하여 이러한 문제의 대부분을 처리합니다.)

관련 정보