1つのフォルダー(およびそれに含まれるすべてのサブフォルダー)を除外したい場合を除いて、特定のフォルダー内のすべてのフォルダーとサブフォルダーをchmod
したいと思います。
私がこれまでに持っているのは、StackOverflowからの次のソリューションのハックです:
これが私がこれまでに思いついたものです:
find . -type d \( -path ./node_modules \) -Prune -o -print -exec chmod 644 {}\;
問題は-print
の有無にあります。次のエラーが表示されます:
検索: `-exec 'への引数がありません
次の行は、-exec chmod 644{}\;
から読み取る必要がある期待される結果を示しています。
find . -type d \( -path ./node_modules \) -Prune -o -print
データを-exec
にパイプするために、その行に何が欠けていますか?
-print
を削除し、( and )
をエスケープして、{}
の後にスペースを追加します
find . -type d \( -path ./node_modules \) -Prune -o -exec chmod 644 {} \;
少し遊んだ後、私は次のことが私のために働いていることに気づきました:
find . -not -path "*/node_modules*" -type f -exec chmod 644 {} \;
find . -not -path "*/node_modules*" -type d -exec chmod 755 {} \;