web-dev-qa-db-ja.com

Linuxで隠しファイルをchmodおよびchownする方法

隠しファイルに対してchmodまたはchownを再帰的に実行するにはどうすればよいですか?

Sudo chmod -R 775 *は隠しファイルでは機能しません。

同じことがSudo chown -R user:groupにも当てはまります。

35

現在のディレクトリをchmodしても問題ない場合は、それを実行して-R重労働を行う。 -Rは隠しファイルを無視しません。

Sudo chmod -R 775 .
37
John Kugelman

*にはデフォルトで隠しファイルは含まれていませんが、bashを使用している場合は、次のようにしてこれを行うことができます。

shopt -s dotglob

詳しくはbashの builtin manual をご覧ください:

設定すると、Bashは「。」で始まるファイル名を含めます。ファイル名の展開の結果。

これは*隠しファイルも含めます。

chmod -R 775 *

それを無効にする:

shopt -u dotglob
35
slhck

隠しファイルを含む、現在のディレクトリ内のすべてのファイル(再帰的に):

chmod 755 -R ./* ./.[!.]*

現在のディレクトリにあるすべてのファイルnot再帰的に、隠しファイルを含む:

chmod 755 ./* ./.[!.]*

これは、2つのドットで始まる例外ファイル名を変更しません(例:"./..thisonescapesunharmed.txt"

また、「x」ビットを削除しないように注意してください。そうしないと、すべてのディレクトリにアクセスできなくなります(ディレクトリにcdするにはxビットが必要です)。

このアラートを覚えておいてください。裸の* だが ./*代わりに。

ディレクトリのアクセス許可の設定に関する問題を回避するには、代わりにfindを使用します。

find . -type f -exec chmod `VALUE` {} \;
2
Dr Beco

もう1つのオプションは、findを使用することです。非常に細かく制御できるためです。

find <path to start from> -exec chown <options> {} \+

find -path '<path to include>' -exec chown <options> {} \+

唯一の欠点は、findのバージョンによって構文が異なることです。

2
RedX