2012-04-05 34 views
2

我有一個shell腳本輸出在用戶提供的文件夾中找到的所有.js和.html文件。我需要從搜索結果中排除子文件夾及其所有文件。我正在使用find命令來執行此操作。我目前的命令排除了該子文件夾下的所有文件,但輸出結果中的子文件夾。我想排除名爲「CrashLog」及其所有文件的文件夾。該子文件夾的路徑是「用戶/測試/桌面/單位/ JSUnit的/系統崩潰日誌/」查找命令不包括文件夾從結果

這裏是我使用find命令:

find "Users/test/Desktop/Units" -name CrashLog -prune -o -name "*.html" -o -name "*.js" 

輸出包括「用戶/測試/桌面/單位/ JSUnit的/系統崩潰日誌/」。我怎樣才能排除這一點?我知道我可以使用grep,但寧願如果有解決方案使用查找本身。我在Mac OSX上運行。

回答

2

你需要-print,在年底和括號周圍的文件擴展名的測試:

find "Users/test/Desktop/Units" -name CrashLog -prune -o \(-name "*.html" -o -name "*.js" \) -print 
1
find "Users/test/Desktop/Units" -name CrashLog -prune -a \(-name "*.html" -o -name "*.js" \) 
+0

@ DigitalRoss:這不會給我的Mac上的任何輸出。 – smokinguns 2012-04-05 02:27:03

+0

在某些情況下,暗示'-print'。我傾向於總是提供它...我想我畢竟沒有完全復古...... – DigitalRoss 2012-04-05 04:26:47

+0

使用「-a」不會給出任何輸出。使用-o提供輸出 – smokinguns 2012-04-05 05:36:44