ディレクトリの場合は find-chmod を結合し、通常のファイルの場合は find-chmod を結合します。

ディレクトリの場合は find-chmod を結合し、通常のファイルの場合は find-chmod を結合します。

次のコマンドがあります。

find /var/www/html/* -type d -exec chmod 755 {} \;
find /var/www/html/* -type f -exec chmod 644 {} \;

Stephen Kittの答えから見つけました。ここ次のように組み合わせることができます。

find /var/www/html/* -exec chmod a-x,a=rX,u+w {} \+

このようなchmod主張は特に構文の面で読書がそれほど楽ではありませんfind(私はまだ、、、およびのような組み合わせのnixの意味に慣れておらず、a-xこれを学ぶ時間と心の平和がありません。今後は真剣に受け入れます。)a=rXu+w

そこから数字を使用できますか?そうでなければ、提案された特定のコマンドよりも少し長くても、これら2つのコマンドを統合するより快適な方法がありますか?

答え1

私はあなたが快適であると感じるものを使用する必要があると言いたいと思います。

find /var/www/html/* -type d -exec chmod 755 {} \+
find /var/www/html/* -type f -exec chmod 644 {} \+

とても良いです(\+いいえ\;)。

これa-x,a=rX,u+w chmod議論(あなたも見ることができますPOSIX仕様chmod)それぞれ:

  • すべての人の実行ビットをクリア(a-x)、
  • 全員の権限をa=次のように設定します。
    • 読む( r),
    • 実行可能ファイル(X)がディレクトリまたは実行可能ファイルの場合、
  • u+w所有者の書き込み可能ビット()を追加します。

条件付き(ディレクトリまたは実行可能ファイルの場合は実行可能)は数値で表現できません。

-x順次合計の目的は、=rXディレクトリにのみ実行ビットが設定されていることを確認することです。実行ビットがクリアされるため、X実行ビットが設定されているファイルではなくディレクトリのみを一致させることができます。

私はfindここではまったく必要ないと思います。

chmod -R a-x,a=rX,u+w /var/www/html/*

を使用すると、同じ変更が適用されますchmod

関連情報