我的文件夹里有很多文件。我要复制所有以以下名称开头(以空格分隔)的文件:
abc abd aer ab-x ate
到另一个文件夹。我怎样才能做到这一点?
随着csh
,tcsh
,ksh93
,bash
,fish
或者zsh -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
每个include调用一次,这可能会很慢。执行此操作的另一种方法是填充一个数组,然后从那里开始(此处为ksh93
,zsh
或最近的bash
语法):
files=()
includes=(abc abd aer ab-x ate)
for include in "${includes[@]}"; do
files+=( "$include"* )
done
cp -- "${files[@]}" dest/
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句