(一)Linux 刪除當前目錄及子目錄中全部某種類型的文件php
方法1 : 此方法不能處理目錄中帶空格的那些。html
rm -rf `find . -name "*.example"`
Linux的文件名(目錄也是一種文件)不建議帶空格,命令行中很差處理這個空格。jsp
方法2:組合使用 find 及 xargs svn
find test2/ -name '*.example' |xargs rm -rf
(xargs 是給命令傳遞參數的一個過濾器,能夠將前一個命令產生的輸出做爲後一個命令的參數。)
即將 find 產生的輸出(test2 目錄下的全部 example 類型文件),做爲 rm 的參數,從而徹底刪除。測試
方法3: 組合使用 find 和 delete 命令spa
find . -name *.example -delete
此方法能夠看做是對 方法2 的簡化改進 。命令行
(二)Linux 複製指定目錄及子目錄下特定類型的文件code
首先創建一個用於測試的目錄,目錄中包含用於測試的 *.txt 文件和 *.tes 文件。
目標是保持當前的目錄結構,只把 txt 文件複製出來。
方法1:當不須要的文件類型較爲單一時,能夠經過徹底複製而後刪除指定類型的文件完成htm
// Step1 使用以下命令,將測試目錄 test 下全部內容徹底複製到 test2 cp -r test/ test2
// Step2 組合使用find及xargs,將 *.tes 文件刪除。 find test2/ -name '*.tes' |xargs rm -rf
適用場景舉例:把項目文件備份,要去除其中的 .svn 文件,能夠採用這種方式。blog
方法2:須要的文件爲單一類型,帶目錄結構複製
這種狀況下能夠使用 tar 命令將指定類型的文件打包,而後解包。
// Step1 創建目錄 test3 mkdir test3
// Step2 將指定類型文件帶目錄結構打包 find test/ -name '*.txt' |xargs tar czf test3.tgz
// Step3 解包到目錄 test3
tar zxvf test3.tgz -C test3
適用場景:較爲廣泛,例如能夠複製某個 Web 項目的全部 html/jsp/php 文件;或複製其餘項目中特定類型的源文件。