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


33

どのように私は再帰的に実行するかchmodまたはchown隠しファイルのため?

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

同じことは同じですsudo chown -R user:group

回答:


35

また、現在のディレクトリをchmod 'しても問題ない場合は、それを実行し、手間をかけます-R-R隠しファイルを無視しません。

sudo chmod -R 775 .

14
これ(* .*)は最も安全な方法ではありません。特に、親ディレクトリに再帰しchmodます。つまり、現在のディレクトリの兄弟でもあります。適切な方法は、* ..?* .[^.]*またはさらに良いでしょう(ワイルドカードはどのファイルとも一致しない可能性があると考える)$(ls -A)
ジャパレセク

1
@jpalecek:の出力lsは解析不能です。解析しようとすると、トラブルが発生します。適切なアプローチは、シェルグロビングを使用することです。
スコットセヴェランス

でも、LinuxとOS X間のx-PLATスクリプトを実行する際のLinuxにあなたはchmodのための引数の順序を変更する能力を持っている、これは例えば、あなたが使用する必要があるためですが、sudo chmod 775 -R腹アップ行くだろうので、この答えに固執。
kayleeFrye_onDeck

35

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

shopt -s dotglob

詳細については、bashのbuiltinマニュアルを参照してください。

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

これにより*、隠しファイルも含まれるようになります。

chmod -R 775 *

以下で無効にします:

shopt -u dotglob

2
でそれを行う方法はzsh
何も特別なここで14年

2
(D)chmod -R 775 *(D)
グロビング

2

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

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

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

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


2

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

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

隠しファイルを含む、再帰的ではない現在のディレクトリ内のすべてのファイル:

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

たとえば、2つのドットで始まる例外ファイル名は変更されません。 "./..thisonescapesunharmed.txt"

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

このアラートを覚えておいてください:裸では*なく、./*代わりに使用してください。

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

find . -type f -exec chmod `VALUE` {} \;
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.