回答:
また、現在のディレクトリをchmod 'しても問題ない場合は、それを実行し、手間をかけます-R
。-R
隠しファイルを無視しません。
sudo chmod -R 775 .
ls
は解析不能です。解析しようとすると、トラブルが発生します。適切なアプローチは、シェルグロビングを使用することです。
sudo chmod 775 -R
腹アップ行くだろうので、この答えに固執。
*
デフォルトでは隠しファイルは含まれませんが、bashを使用している場合は、次の方法でこれを実行できます。
shopt -s dotglob
詳細については、bashのbuiltin
マニュアルを参照してください。
設定すると、Bashには「。」で始まるファイル名が含まれます。ファイル名展開の結果。
これにより*
、隠しファイルも含まれるようになります。
chmod -R 775 *
以下で無効にします:
shopt -u dotglob
zsh
?
(D)
chmod -R 775 *(D)
隠しファイルを含む、現在のディレクトリ内のすべてのファイル(再帰的に):
chmod 755 -R ./* ./.[!.]*
隠しファイルを含む、再帰的ではない現在のディレクトリ内のすべてのファイル:
chmod 755 ./* ./.[!.]*
たとえば、2つのドットで始まる例外ファイル名は変更されません。 "./..thisonescapesunharmed.txt"
また、「x」ビットを削除しないように注意してください。削除しないと、すべてのディレクトリにアクセスできません(ディレクトリにcdするにはxビットが必要です)。
このアラートを覚えておいてください:裸では*
なく、./*
代わりに使用してください。
ディレクトリのアクセス許可を設定する問題を回避するfind
には、代わりに使用します。
find . -type f -exec chmod `VALUE` {} \;
* .*
)は最も安全な方法ではありません。特に、親ディレクトリに再帰しchmod
ます。つまり、現在のディレクトリの兄弟でもあります。適切な方法は、* ..?* .[^.]*
またはさらに良いでしょう(ワイルドカードはどのファイルとも一致しない可能性があると考える)$(ls -A)
。