隠しファイルに対してchmod
またはchown
を再帰的に実行するにはどうすればよいですか?
Sudo chmod -R 775 *
は隠しファイルでは機能しません。
同じことがSudo chown -R user:group
にも当てはまります。
現在のディレクトリをchmodしても問題ない場合は、それを実行して-R
重労働を行う。 -R
は隠しファイルを無視しません。
Sudo chmod -R 775 .
*
にはデフォルトで隠しファイルは含まれていませんが、bashを使用している場合は、次のようにしてこれを行うことができます。
shopt -s dotglob
詳しくはbashの builtin
manual をご覧ください:
設定すると、Bashは「。」で始まるファイル名を含めます。ファイル名の展開の結果。
これは*
隠しファイルも含めます。
chmod -R 775 *
それを無効にする:
shopt -u dotglob
隠しファイルを含む、現在のディレクトリ内のすべてのファイル(再帰的に):
chmod 755 -R ./* ./.[!.]*
現在のディレクトリにあるすべてのファイルnot再帰的に、隠しファイルを含む:
chmod 755 ./* ./.[!.]*
これは、2つのドットで始まる例外ファイル名を変更しません(例:"./..thisonescapesunharmed.txt"
また、「x」ビットを削除しないように注意してください。そうしないと、すべてのディレクトリにアクセスできなくなります(ディレクトリにcdするにはxビットが必要です)。
このアラートを覚えておいてください。裸の*
だが ./*
代わりに。
ディレクトリのアクセス許可の設定に関する問題を回避するには、代わりにfind
を使用します。
find . -type f -exec chmod `VALUE` {} \;
もう1つのオプションは、find
を使用することです。非常に細かく制御できるためです。
find <path to start from> -exec chown <options> {} \+
find -path '<path to include>' -exec chown <options> {} \+
唯一の欠点は、find
のバージョンによって構文が異なることです。