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可以看到如圖:
如果需要將.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 -w)
例2:ls | tail -11| xargs -i cp -r {} /tmp/
拷貝最後11個檔案到根目錄的/tmp/下(如要拷貝頭5個檔案,則將tail -11 換成 head -5)
wc head tail xargs這些就請自行man手冊一下。