Command-Line
將具有特定名稱的文件複製到另一個文件夾
我有一個包含很多文件的文件夾。我想複製以這些名稱開頭的所有文件(以空格分隔):
abc abd aer ab-x ate
到另一個文件夾。我怎樣才能做到這一點?
使用
csh
,tcsh
,ksh93
,bash
,fish
orzsh -o cshnullglob
,您可以使用大括號擴展和萬用字元來做到這一點(--
這些文件名不需要,但我認為它們只是範例):cp -- {abc,abd,aer,ab-x,ate}* dest/
如果您不想使用大括號擴展,則可以使用 for 循環(此處為 POSIX/Bourne 樣式語法):
for include in abc abd aer ab-x ate; do cp -- "$include"* dest/ done
如果您有大量文件,由於
cp
每個包含呼叫一次,這可能會很慢。另一種方法是填充一個數組,然後從那裡開始(這裡ksh93
,zsh
或最近的bash
語法):files=() includes=(abc abd aer ab-x ate) for include in "${includes[@]}"; do files+=( "$include"* ) done cp -- "${files[@]}" dest/