2016-10-25 10 views
0

私のプログラムで助言が必要です。 bashでは、インデックス付きのディレクトリに実行可能ファイルを表示し、インデックスでファイルを実行する必要があります。可能です? 実行可能ファイルを表示して実行してください

は、ディレクトリ内のすべての実行可能ファイルを一覧表示するには、応答

+0

ので、あなたがインデックスにフィルタして、特定のインデックスを実行するか、単にディレクトリ内のすべての実行可能ファイルを実行したいですか? – ritesht93

答えて

0

をありがとう、あなたが試すことができます:

ls -l | awk '$1~"-rwxr-xr-x"{ print $9 }' 

このコマンドは-rwxr-xr-xでファイルの名前を印刷します。ニーズに合わせて並べ替えることができます。あなたが実行可能ファイルの目的のリストを持っている場合

、それらを実行します。

for i in $(ls -l | awk '$1~"-rwxr-xr-x"{ print $9 }'); do ./$i; done  
+0

'ls'出力の解析が脆いです。この場合、ファイルはowner、group、worldに対して実行可能でなければならないでしょう---これは正しいかもしれないし、そうでないかもしれません。代わりに 'find -executable'を使わないのはなぜですか?あるいは、 '[-x $ file]'はループ内にありますか?ここの他の人は、 '$(...)'の代わりにバッククォートを使うことについて不平を言うかもしれません。 – Robert

+0

あなたのコメントに感謝し、私は私の答えを編集しました! – andreatsh

1

findコマンドは少し複雑に非常に便利なようだ:

検索を。 -maxdepth 1 -type f -perm -a = rx -execエコーExec {} \;

  • -maxdepth 1:のみ通常のファイル(ディレクトリではない)
  • -perm -a = RX:所有者
  • ための読み取りおよび実行可能 - 1つの
  • 型F最もレベルで降順exec Exec {} \; :見つかったファイルごとに、echoファイルを実行します。

テスト:

find . -maxdepth 1 -type f -perm -a=rx -exec echo Exec {} \; 
Exec ./kl.sh 
関連する問題