나는 모든 파일을 통해 몇 가지 명령을 실행 한 번이 모든 디렉토리로 이동하는 명령이 있습니다`for` 루프가 공백을 파싱하는 것을 막는 방법?
STDIR=$PWD;
for dir in $(find . -type d 2>&-); do
cd "$dir";
for file in $(find * -prune -type f 2>&-); do
command "$file";
done;
cd "$STDIR";
done
을하지만, 파일이나 디렉토리 이름에 공백이 문제가있다. 어떻게 해결할 수 있습니까?
이 질문은 this question에 답을 적용하려고 할 때 나타납니다.
편집 : 좋은 해결책은 this comment에도 있습니다. 공간 문제를 해결하기 위해, done
후
IFS=$'\n'
상기 코드의 첫 번째 행 후
및
unset IFS
추가.
일반적으로 단어 분리를 위해'for $ i (command)'를 사용하면 안됩니다. – jordanm
가능한 [BASH에 공백이있는 파일 이름] (http://stackoverflow.com/questions/3967707/file-names-with-spaces-in-bash) – finnw
예 : http://stackoverflow.com/a/10984996/1276280 – pizza