再帰では検索が機能しませんか?

再帰では検索が機能しませんか?

以下のコマンドを実行すると、検索結果の最初のレベル(SubDir *)のみが変更され、サブシーケンス(ChildSubDir *)は変更されていません。 chmodを使って再帰的に検索して実行できるかどうか見てみたいです。

実行するコマンド:

find ./to/path/ -type d -exec chmod 777 {} \;

目次:

DirsRoot
  |-->SubDir1
  |    |-->ChildSubDir1
  |             |-->OtherFile1
  |-->SubDir2
  |    |-->ChildSubDir2
  |             |-->OtherFile2
  |-File1
  |-File2

答え1

検索せずにchmodを再帰的に使用できます。-Rフラグがあります。それは次のとおりです。

$ cd ./to/path
$ chmod -R 777 *

これはchmodすべてのファイルになります。

ディレクトリのみchmodしたい場合は、コマンドは次のようになります。

find /to/path -type d -exec chmod 777 {} +

詳しくはここ

答え2

次のコマンドを使用すると機能します。

find /to/path/ -type d -print0 | xargs -0 chmod 777

関連情報