最近有一個需求是要把某個資料夾裡面的特定副檔名檔案,移動到一個特定的資料夾並且要保留原本的目錄結構
複製特定副檔名到 /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:列印複製進度
如此就可以達成我們想要的功能囉!
參考資料
- https://www.wikiwand.com/zh-tw/Cpio
- https://superuser.com/questions/299938/how-can-i-recursively-copy-files-by-file-extension-preserving-directory-structu
《AWS CDK 完全學習手冊:打造雲端基礎架構程式碼 IaC》
第 12 屆 iT 邦幫忙鐵人賽 DevOps 組冠的《用 CDK 定 義 AWS 架構》
第 11 屆 iT 邦幫忙鐵人賽《LINE bot 好好玩 30 天玩轉 LINE API》
一個熱愛分享的雲端工程師!