for
簡単な bashループを作成して、すべてのサブディレクトリのアクセス許可を変更しようとしています。
for dir in `find . -type d`; do chmod 755 "$dir"; done
ただし、存在しないディレクトリについて文句を言います。ループからディレクトリ名を出力するだけで( に置き換えchmod 755 "$dir"
てecho "$dir"
)、ディレクトリの名前にスペースが含まれていると問題が発生することがわかりました。何が起こるかというと、ループはすべての改行とスペースfor
の結果を分割します。find
改行のみに従って結果を分割し、スペースを無視するようにしたいと思います。二重引用符は、文字列がchmod
1 つの引数として到達することを確認する必要があります。分割を変更するにはどうすればよいですか?