1. 程式人生 > >linux下一次cp多個檔案

linux下一次cp多個檔案

linux下使用cp命令拷貝多個檔案有幾種方法,一是使用萬用字元,二是使用管道

一.萬用字元的使用

萬用字元是一種特殊語句,主要有星號(*)和問號(?),用來模糊搜尋檔案。主要的萬用字元有:

*         匹配任意長度的字串

?        匹配一個長度的字元

[...]     匹配其中指定的字元

[a-z]   匹配指定的字元範圍

[^...]    除了其中指定的字元,其他均可匹配

1:*可以代替0個或多個字元。如果需要拷貝以ABC開頭的檔案,可以輸入ABC*,拷貝以ABC開頭的所有檔案型別的檔案,如ABCD.txt、ABCDEFG.exe、ABCZH.dll等。如果只需要拷貝txt檔案,則可以輸入ABC*.txt,拷貝以ABC為開頭的TXT型別的檔案,如ABC.txt、ABC12.txt。

2:?則只匹配一個字元,[1,b,8]就匹配括號中的1,b和8,這些都可以混搭使用。在linux2.6.14核心中,ls可以看到如圖:

cp多個檔案 - beef - beef

如果需要將.IAB .IAD .IMB .IMD和.WK3 這5個檔案拷貝到根目錄的tmp下,可以使用如下命令: cp fs2410_kernel_2614.[I,W]?? /tmp [a-z]就是匹配字母a到z的所有字元,也就是所有小寫字母。[^A]就是除了A字元之外,其他字元均可匹配。靈活運用萬用字元可以方便的拷貝多個檔案
二.管道的使用
如果你只是想拷貝最後的10個檔案,或者你拷貝的檔案沒有共同字元,管道或許可以幫的上忙。 命令列中的 |  就是管道,可以把第一個命令輸出作為第二個命令的輸入
1:ls /usr/bin/ | wc -w 顯示/usr/bin/中有多少個檔案(不包括隱藏檔案,要顯示隱藏檔案則應該 ls -a /usr/bin/ | wc -w2:ls | tail -11| xargs -i cp -r {} /tmp/ 拷貝最後11個檔案到根目錄的/tmp/下(如要拷貝頭5個檔案,則將tail -11 換成 head -5)
wc head tail xargs這些就請自行man手冊一下。