Test
名前付きディレクトリとその中にいくつかのディレクトリがあります。両方Test
のディレクトリとその中のディレクトリには実行可能ファイルがあります。を使って印刷したいですls
。このコマンドを使用します。
ls -l `find Test/ -perm /u=x,g=x,o=x -type f`
これは良い/正しい/高速コマンドですか?
私の解決策は次のとおりです
find Test/ -executable -type f -exec ls -l {} \;
そして同じ結果を得る歩行者そしてフラディーチェリー供給。
答え1
そうではありません。 lsコマンドをfindと組み合わせることができます。
find Test/ -type f -perm /u=x,g=x,o=x -exec ls -l {} \;
修正する
実際に-executable
は同じではありません-perm /u=x,g=x,o=x
。グループや他の人だけが実行できるファイルが存在する可能性があり、表示されません。
したがって、目的に応じてファイルを本人だけ実行可能にしたい場合-executable
。
答え2
表示されて-exec
いるので使用する必要はありません。find
-ls
$ find Test/ -perm /u=x,g=x,o=x -type f -ls
man
ページから:
-ls Correct; ls -dils 形式で標準出力に現在のファイルをリストします。環境変数POSIXLY_CORRECTが設定されていない場合、ブロック数は1Kブロックであり、この場合512バイトブロックが使用されます。ファイル名の異常な文字を処理する方法の詳細については、例外ファイル名のセクションを参照してください。
答え3
-exec
findコマンドのパラメータを使用する必要があります。
$ find Test/ -perm /u=x,g=x,o=x -type f -exec ls -l {} \;
答え4
実行ファイルの検索現在のログインユーザー
[sudo] find /path -type f -executable
または、所有者/グループ/その他の1つ以上に実行可能ビットが設定されていることを確認してください。
[sudo] find /path -type f -perm /111
または実行可能所有者:
[sudo] find /path -type f -perm /100
または
[sudo] find /path -type f -perm -100