특정 크기보다 큰 파일을 찾아 다른 디렉터리로 이동할 수 있는 스크립트를 작성하려고 하는데 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
여기서 빠진 두 가지는
-type f
에 대한find
및$file
큰따옴표는 이상한 파일 이름을 처리 하는 데 사용됩니다 (예:*
.
자세한 내용 IFS= read -r
은 ""IFS=read -r line"을 이해하셨나요?"(구분 기호를 구체적으로 지정하여 이러한 문제의 대부분을 처리합니다.)