複製特定副檔名歸檔並且保留目錄結構

最近有一個需求是要把某個資料夾裡面的特定副檔名檔案,移動到一個特定的資料夾並且要保留原本的目錄結構

複製特定副檔名到 /path/to/destdir

通常我們的需求是要把現在的目錄下所有特定副檔名檔案做移動,我們會這樣做

$ cp *.pdf /path/to/destdir

複製特定副檔名到 /path/to/destdir 並且保留目錄結構

可是當我們現在的目錄下有很多的資料夾,我希望自動去把裡面的檔案抓出來並且保留目錄結構上面的指令就沒辦法完成了,那今天要達成這麼需求我們可以怎麼做呢?我們可以使用 cpio 指令配合 find 來達成,那詳細要怎麼做呢?

$ find . -name '*.pdf' | cpio -pdm /path/to/destdir

參數介紹

m:該複製過程會保留檔案原有的編輯時間

d:cpio 依造原目錄結構建立目錄

u:直接覆蓋已經存在的同名檔案

v:列印複製進度

如此就可以達成我們想要的功能囉!

參考資料