特定のディレクトリの下にあるすべてのファイルとサブディレクトリに755権限を設定したいのですが、755権限のないコンポーネントに対してのみchmod 755を実行したいです。
find /main_directory/ -exec chmod 755 {} \;
find
コマンドが長いリストを返す場合、これには長い時間がかかります。statコマンドを使用して各コンポーネントのOctalファイルレベルのアクセス許可を確認し、if-elseを使用してファイルのアクセス許可を切り替えることができることはわかっていますが、単一行のアプローチを使用find
してxargs
、最初にファイル/ディレクトリのアクセス許可を確認します、chmod
それが別の値に設定されている場合はを使用して755に変更します。
6
これは時期尚早の最適化であるかもしれません、そして、それはより速いとしてもうまく行かないかもしれません。これらのチェックをすべて実行すると、速度が低下する場合があります。より高速であることを確認するためのテストは、これをたくさん行う必要がある場合にのみ効果があります。
—
ctrl-alt-delor
おそらく、すべてのファイルに実行権限を与えたくないでしょう。これはセキュリティリスクを引き起こします。(これは、MicrosoftのWindows上のウイルスベクターの1つです。すべてが実行可能です)。シンボリックモードでは、次のように言うことができます
—
ctrl-alt-delor
u+rw,go+r,go-w,ugo+X
。大文字に注意してください。
私は@ ctrl-alt-delorに同意しますが、あなたが尋ねたものに近いものを提案します、u = rwX、go = rXこれは同じことを達成するはずです。
—
penguin359