我有一個腳本,它將需要分析的文件列表作爲參數。它可以是任意數量的文件。bash:使用一種模式立即獲取所有文件
$ ./myScript file1 file2 ... fileN
現在,我必須在大量文件(〜30)上運行它,這些文件的路徑可以很容易地利用模式進行開發。用find
我可以一個接一個地找到他們,並在他們每個人上應用腳本,但我想要的是將他們全部和一起運行腳本所有。
我應該怎麼辦?
我有一個腳本,它將需要分析的文件列表作爲參數。它可以是任意數量的文件。bash:使用一種模式立即獲取所有文件
$ ./myScript file1 file2 ... fileN
現在,我必須在大量文件(〜30)上運行它,這些文件的路徑可以很容易地利用模式進行開發。用find
我可以一個接一個地找到他們,並在他們每個人上應用腳本,但我想要的是將他們全部和一起運行腳本所有。
我應該怎麼辦?
find ... -exec ./myScript {} +
這威力結果在一個以上的呼叫myScript
,如果有太多的比賽(即在命令行變得太長),但有一點你可以做,以避免在這種情況下,多次調用反正(缺少將模式本身作爲參數傳遞給myScript
並在內部執行模式匹配)。
謝謝。那麼,它是用「+」代替通常的反斜槓來改變這裏的區別嗎? –
@RickyRobinson:正確。 '{} \;'是每場比賽一次,'{} +'是每次比賽的多次比賽。檢查「man find」;該工具具有很多**,可以提供超越簡單的模式查找和打印功能。瞭解它可以做什麼是非常值得的。 – DevSolar