我正在嘗試根據不同的條件在目錄中查找檔案或檔案夾:
- 所有以 W 開頭的檔案,或者,
- 所有以 X 結尾的檔案,或者,
- 所有以 Y 開頭并以 Z! 結尾的檔案。
到目前為止,這是我最好的選擇:
find -name 'w*' || find -name '*x' || 'find -name 'y*' & find -name '*z!'
這顯然不起作用。顯然沒有錯誤訊息,只是它沒有找到我正在尋找的所有檔案。
uj5u.com熱心網友回復:
-o您可以使用to OR指定多個謂詞。
find -name 'w*' -o -name '*x' -o -name 'y*z'
-regex等效地,您可以使用捕獲所有這些條件的單個。
find -regex '.*/\(w[^/]*\|[^/]*x\|y[^/]*z\)'
(請注意引數 to 如何-regex應用于整個路徑,以及與大多數現代正則運算式方言相比,開箱即用的正則運算式語法如何在一些奇怪的地方需要反斜杠。顯然,正則運算式與常規通配符不同;在正則運算式中,.*匹配任何字串,并[^/]*匹配一個不能是斜杠的字符序列。這里的正則運算式語法適用于 GNU find,但不適用于 MacOS / BSD find;嘗試添加一個-E選項并洗掉(、|和).)之前的反斜杠
目前還不清楚你希望||做什么。如果第一個失敗,它會運行第二個find,但它不會(除非你給它無效的謂詞或其他東西;找不到任何檔案不是錯誤)。
更令人困惑的是,&在后臺運行作業;您可能正在尋找&&,但它也不符合您的要求。您嘗試的操作可能會非常低效地完成
find -name 'w*'
find -name '*x'
find -name 'y*z'
盡管重復的遍歷可能會多次報告同一個檔案。但是您想避免這種情況,并且只遍歷目錄樹一次,因為這可能是一個非常繁重的操作。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/451692.html
上一篇:為什么我的Python代碼ppadb無法連接到Memu?從cmd行可以adb到Memu。Bluestacksadbpython代碼有效,但Memu無效
