5

「.EXE」で終わるファイルを除くすべての実行可能権限を除外するこのコマンドを表現する方法を探しています

「find」コマンドと-execを使用して解決しようとしています。ありがとう。

私が試したコマンド、および他のバージョンの同じコマンドは機能しません。

find . -type f -regex "[^\.EXE$]" -printf "%f\n" -exec chmod a-x {} +

助けてくれてありがとう、ベコ。


編集:

正規表現の「逆」を見つけるために、(さらに)調査した後に試しました:

find . -type f ! -regex ".EXE$" -printf "%f\n" -exec chmod a-x {} +

しかし、これもうまくいきませんでした。

4

2 に答える 2

8

コマンドで修正できることはほとんどありません

まずは除外条件。「*.EXE」を除外するには、! -name "*.EXE". \OP の条件は、、、またはと.は異なる文字を含むすべてのファイルを取得します。EX

もう 1 つは、この特定の目的のためには、実行可能ファイルのみをチェックすることが理にかなっているということです。-executableこれは、述語を使用して実現できます。

あとは大丈夫そうです。

こちらが完全版です

 find -executable -type f ! -name "*.EXE"  -exec chmod a-x {} +
于 2012-05-03T18:18:49.963 に答える
-1

うまくいかない場合find . -name "*.EXE" -exec chmod a-x {} +は、「find . -name .. -print」をスクリプトに入れて、スクリプトを編集します。

于 2012-05-03T18:14:54.740 に答える