Linux的find命令查詢多級目錄下的某一類文件

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的查詢命令參考:http://www.51gjie.com/linux/1025.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章