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