歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> linux find命令忽略某個或多個子目錄的實例

linux find命令忽略某個或多個子目錄的實例

日期:2017/3/1 17:58:30   编辑:Linux技術

使用find命令在linux系統中查找文件時,有時需要忽略某些目錄,可以使用 -prune 參數來進行過濾。
不過必須注意:要忽略的路徑參數要緊跟著搜索的路徑之後,否則該參數無法起作用。

例如:指定搜索/home/zth目錄下的所有文件,但是會忽略/home/zth/astetc的路徑:


復制代碼代碼如下:
find /home/zth -path "/home/zth/astetc" -prune -o -type f -print

按照文件名來搜索則為:


復制代碼代碼如下:
find /home/zth -path "/home/zth/astetc" -prune -o -type f -name "cdr_*.conf" -print

要忽略兩個以上的路徑如何處理?


復制代碼代碼如下:
find /home/zth /( -path "/home/zth/astetc" -o -path "/home/zth/etc" /) -prune -o -type f -print
find /home/zth /( -path "/home/zth/astetc" -o -path "/home/zth/etc" /) -prune -o -type f -name "cdr_*.conf" -print

注意:/( 和/) 前後都有空格。

查找某個文件包含內容,以下語句可以解決目錄帶空格的問題:


復制代碼代碼如下:
find ./ -name "mysql*" -print0 |xargs -0 grep "SELECT lead_id FROM vicidial_list where vendor_lead_code"

如果目錄不帶空格,可以這樣:


復制代碼代碼如下:
find ./ -name "mysql*" |xargs grep "SELECT lead_id FROM vicidial_list where vendor_lead_code"

通過以上的例子,大家應該可以掌握find命令查找文件時,忽略相關目錄的方法了。

Copyright © Linux教程網 All Rights Reserved