Linux的find命令查詢多級目錄下的某一類檔案

2021-09-27 16:23:51 字數 790 閱讀 6480

1. 假設有這樣乙個目錄/data,子目錄下有 a , b , c ... 每個子目錄a , b , c 都有 format=txt/version=1/data_date=2019-09-23 和 format=txt/version=1/data_date=2019-09-24,這些目錄下面有zip和txt.zip兩種檔案。

我們需要取出format/txt/data_date=2019-09-24下面的zip檔案。

2. 因為目錄級別太多,我們需要用到find命令的path引數排除某個目錄。

find -type f  -path "*/format=txt/version=1/data_date=2019-09-23/*" -prune -o -name "*.gz" -print
3. 現在我們已經可以篩選出來所有2019-09-24的zip檔案並且列印了出來,現在把它們複製到某個目錄下。

find -type f  -path "*/format=txt/version=1/data_date=2019-09-23/*" -prune -o -name "*.gz" -print -exec cp {} /data/test/output \;
4. /data/test/output目錄下的所有檔案包含了txt.zip,所以現在需要將檔名包含txt的刪除。

find /data/test/output -name '*txt*' | xargs rm -rf
附:

1. 列舉排除多個path的查詢命令參考:

linux查詢命令find

在當前目前下查詢檔案 test.txt find name test.txt在 home 目錄下查詢test.txt find home name test.txt在整個系統中查詢nginx檔案或目錄 find name nginx在整個目錄下查詢名稱包含nginx的檔案 find type f n...

Linux命令 find 查詢命令

help引數,查詢命令引數 find help 命令格式 find h l p olevel d help tree search stat rates opt exec path expression 這樣的說法你能看的懂嗎?反正我是看不懂。於是乎使用 man find命令,得到各引數更詳細的解釋...

linux檔案查詢find命令

1.locate 與 find命令的區別 locate命令用於查詢檔案,它比find命令的搜尋速度快,它需要乙個資料庫,這個資料庫由每天的例行工作 crontab 程式來建立。當我們建立好這個資料庫後,就可以方便地來搜尋所需檔案了。即先執行 updatedb 無論在那個目錄中均可,可以放在cront...