Linux複製指定目錄及子目錄下特定型別的檔案

2021-06-26 09:49:10 字數 1246 閱讀 3394

首先建立乙個用於測試的目錄,用'tree'命令檢視其結構如下所示:

可見,目錄中主要包含用於測試的*.txt檔案和用於充當炮灰的*。tes檔案

目標是保持當前的目錄結構,只把txt檔案複製出來

方法一:當不需要的檔案型別較為單一時,可以通過完全複製然後刪除指定型別的檔案完成

step1 使用命令cp -r test/ test2將測試目錄test下所有內容完全複製到test2,此時樹形結構如下圖

step2 組合使用find及xargs,將*.tes檔案刪除

xargs是給命令傳遞引數的乙個過濾器,可以將前乙個命令產生的輸出作為後乙個命令的引數

命令find test2/ -name '*.tes' |xargs rm -rf, 即將find產生的輸出(test2目錄下的所有tes檔案),作為rm的引數,從而完全刪除

實際效果如圖所示

適用場景舉例:把專案檔案備份,要去除其中的.svn檔案,可以採用這種方式

方法二:需要的檔案為單一型別,帶目錄結構複製

這種情況下可以使用tar命令將指定型別的檔案打包,然後解包,同樣需要組合使用find和xargs

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檔案;或複製其他專案中特定型別的原始檔

Linux複製指定目錄及子目錄下特定型別的檔案

首先建立乙個用於測試的目錄,用 tree 命令檢視其結構如下所示 可見,目錄中主要包含用於測試的 txt檔案和用於充當炮灰的 tes檔案 目標是保持當前的目錄結構,只把txt檔案複製出來 方法一 當不需要的檔案型別較為單一時,可以通過完全複製然後刪除指定型別的檔案完成 step1 使用命令cp r ...

複製指定目錄包括子目錄下的所有指定型別的檔案

將下列 複製到txt文字中。儲存成字尾名為.bat的檔案。然後執行即可。方案 複製指定資料夾下及其所有子資料夾內 字尾名相同的檔案.bat xcopy e d a txt e 2 y xcopy e d a sss e 2 y 註解 此 功能 將d盤a目錄下 包括子目錄 所有字尾為.txt sss的...

linux複製當前目錄到其子目錄下

假設有以下目錄結構,需要把當前目錄.下所有檔案及資料夾 dst除外 複製到其子目錄dst資料夾下 tree dst file1.txt src dir file3.txt file2.txt不能直接使用cp a dst cp cannot copy a directory,into itself,d...