作者MAGICXX (逢甲阿法)
看板Linux
標題[問題] 複製多個檔案
時間Sat Aug 10 23:08:26 2013
大家好 我要問一下很基本的問題
我知道複製是用cp的指令
cp (-r) /locationA/filename /locationB/filename
這樣
現在我想要問的是
如果我只想要複製這個檔案夾裡面的 特定幾個檔案
要怎麼下指令??
比如說
/locationA/file1
/locationA/file2
/locationA/file3
要複製到
/locationB/file1
/locationB/file2
/locationB/file3
要怎麼下指令?
還是只有一個一個複製這樣子?
上面的例子是三個 可是要是有幾千個 不就複製到手指抽筋...囧
感謝各位大大解答~
--
◢███◣ 真是太令我興奮了,教授BOY~~ █████ █▉◥█◤ 覆蓋一張空白考卷在桌上 結束這學期 ██ ◤ \ ◤◤╲╰┤ ㊣ justlasai --
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 112.104.138.200
→ noonee:cp /locationA/file* /locationB/ 你是指這個嗎? 08/10 23:15
*的方式我有想過
上面的例子差了點 好像檔案名稱都是照順序的
如果他今天是不照順序的(意即亂數)
可能是幾個當案名稱是
warp.jpg
photo.png
word.jpg
如果是這樣的話 要怎麼複製呢? 還是說只能用*下去做複數檔案的複製?
※ 編輯: MAGICXX 來自: 112.104.138.200 (08/10 23:23)
推 CP64:可以一次指定多檔名複製到同一目錄下 08/11 00:28
→ CP64:cp 檔案A 檔案B 檔案C /locationB/ 就可以了 08/11 00:29
推 nknudragon:你可以試著使用rsync --include 08/11 01:25
→ n3oanderson:find $path -name $pattern -exec cp {} $dest \; 08/11 01:27
推 nknudragon: -type file 08/11 02:25
推 danielsig727:如果你的清單是列在檔案裏面的話可以考慮用awk自動化 08/11 13:44
→ MAGICXX:感謝大大~ 08/12 00:06
→ MAGICXX:因為是個別產生的檔案 所以可能會用 CP64前輩的做法 08/12 00:07
→ CP64:我沒到前輩的程度啦... 我也才踏進這個領域沒多久而已... 08/12 00:58
→ rickieyang:弄出個清單 filelist 08/12 01:33
→ rickieyang:for i in `cat filelist`; do cp -p /A/$i /B/; done 08/12 01:34
→ MAGICXX:樓上大大的方法也是快又有效XD 我看看要怎麼做一個list 08/12 10:43
→ MAGICXX:檔案名稱的list 08/12 10:43
→ rickieyang:喜歡那就繼續惡搞吧. 在 .profile 加入底下幾行 08/13 00:25
→ rickieyang:multicopy(){ 08/13 00:25
→ rickieyang: for i in `cat $1` 08/13 00:25
→ rickieyang: do 08/13 00:25
→ rickieyang: cp -p /A/$i /B/ 08/13 00:26
→ rickieyang: done } 08/13 00:26
→ rickieyang:以後你就可以用 multicopy filelist 來複製了. 08/13 00:27
→ rickieyang:再把A,B改成$2,$3,就可以multicopy filelist dirA dirB 08/13 00:29
推 weltschmerz:感謝樓上 學到可以直接自定義東西在.profile裡:D 09/05 22:21