\n이름 이있는 폴더가 있습니다.
예를 들면 다음과 같습니다.
$ ls
''$'\n''Test'
테스트 이름이있는 폴더와 이름 앞에 빈 줄이 있습니다.
따라서 부모 디렉토리에서 이와 같은 스크립트를 실행할 때 :
while IFS= read -r d; do
rmdir $d
done < <(find * -type d)
이것은 보여준다:
rmdir: failed to remove '': No such file or directory
rmdir: failed to remove 'Test': No such file or directory
폴더 이름에는 두 줄이 있기 때문에 한 번에 두 번 실행 \n되고 다른 한 번에 실행 Test되기 때문입니다.
따라서이 문제를 어떻게 해결할 수 \nTest있습니까? 스크립트는 하나의 폴더 일뿐입니다.
find * -type d -print0 | while IFS= read -d '' file ; do rmdir $file ; done명령에이 출력이 표시 rmdir: failed to remove 'Test': No such file or directory됩니다.
rmdir "$file"
-print0지시문과-dread 옵션 을 사용해야 합니다.