1. ホーム
  2. linux

[解決済み】再帰的にChmodする

2022-04-01 12:12:25

質問

ある人がアーカイブしたものがあるのですが、それをダウンロードした後、自動的に、展開されたファイル内のファイルシステムのブランチを変更し、読み取りアクセス権を獲得したいのです。(私はアーカイブが作成される方法を変更することはできません)。

このスレッドで調べました。 chmod 既に実行権限があるファイルにのみ再帰的に実行権限を追加する方法 また、他の幾つかの方法と同様ですが、うまくいきません。

ディレクトリにはもともと複数のフラグがありますが、すべて間違っていて、次のように表示されることがあります。

drwx------
d---r-x---
drwxrwxr-x
dr--r-xr--

これらは、私がこれまでに発見したほんの一部ですが、もっとたくさんあるはずです。

find がないディレクトリを調べようとすると、エラーが発生します。 x パーミッションがないため、それを chmod . 今までやっていたのは、親ディレクトリのパーミッションを手動で変更し、次に子ディレクトリに移動して同じことをするなどしていました。しかし、これは多くの手作業です。これを自動的に行う何らかの方法はないのでしょうか?

つまり、私が今やっている方法です。

する。

$ chmod -R +x
$ chmod -R +r

エラーが出なくなるまで、そして

$ find -type f -exec chmod -x {} +

でも、もっといい方法があるはずです。

どうすれば解決するの?

ディレクトリの一覧を表示するには、実行アクセス権に加え、読み取りアクセス権が必要です。実行アクセス権だけだと、ディレクトリ内のエントリーの名前はわかりますが、それ以外の情報はわかりません(タイプもわからないので、どのエントリーがサブディレクトリなのかもわかりません)。これは私にとっては有効です。

find . -type d -exec chmod +rx {} \;