Linuxでは、次のコマンドを使用して、ファイルとフォルダーのアクセス許可モードを再帰的に変更できます。
find "/ Users/Test/Desktop/PATH" -exec * chmod 777 {} \;
次のエラーが繰り返し発生するのと同じように、Macでも同じことができます。
find:TEST_FILE:そのようなファイルまたはディレクトリはありません
問題は、*
がシェルによって解釈され、現在の作業ディレクトリにあるTEST_FILE
という名前のファイルに展開されるため、find
に存在しないTEST_FILE
という名前のコマンドを実行するように指示していることです。 *
で何を達成しようとしているのかわかりません。削除するだけです。
さらに、find
が各ファイルの新しいプロセスをフォークしないように、-exec program '{}' \+
の代わりにイディオム-exec program '{}' \;
を使用する必要があります。 ;
では、ファイルごとに新しいプロセスがフォークされますが、+
では、1つのプロセスのみをフォークし、すべてのファイルを単一のコマンドラインで渡します。これは、chmod
のような単純なプログラムの方がはるかに効率的です。
最後に、chmod
は-R
フラグを使用して独自に再帰的な変更を行うことができるため、特定のファイルを検索する必要がない限り、次のようにします。
chmod -R 777 /Users/Test/Desktop/PATH
-R(再帰)フラグを使用するだけです。
chmod -R 777 /Users/Test/Desktop/PATH
CHMOD yesを使用して:
再帰ファイルの場合:
chmod -R 777 foldername or pathname
非再帰的:
chmod 777 foldername or pathname
これをテストするMac OSxマシンはありませんが、Linuxのbashでは、次のようなものを使用してディレクトリのみをchmodします。
find . -type d -exec chmod 755 {} \+
しかし、これも同じことをします:
chmod 755 `find . -type d`
これもそうです:
chmod 755 $(find . -type d)
最後の2つは、異なる形式のサブコマンドを使用しています。 1つ目はバックティック(古いおよび減価償却済み)を使用し、もう1つは$()サブコマンド構文を使用します。
だから私はあなたの場合、以下があなたが望むことをするだろうと思います。
chmod 777 $(find "/Users/Test/Desktop/PATH")