7

我尝试使用以下命令:

cp src_folder/[!String]* dest_folder

但是,此命令将复制所有不以任何字符 'S'、't'、'r'、'i'、'n'、'g' 开头的文件,而不是复制不以任何字符开头的文件以“字符串”开头。

4

4 回答 4

15

Konrad 答案的一个变体,使用cp选项-t来指定目标目录简化了最后一个命令。它创建一个cp进程来复制所有文件。

ls src_folder | grep -v '^String' | xargs cp -t dest_folder
  • 列出所有文件src_folder
  • 过滤掉所有以String
  • 将所有剩余文件复制到dest_dir
于 2011-01-12T15:18:08.253 回答
5

在 bash 中:

shopt -s extglob
cp src_folder/!(String*) dest_folder
于 2011-01-12T14:54:14.443 回答
3
ls src_folder | grep -v '^String' | xargs -J % -n1 cp % dest_folder

这将

  • 列出所有文件src_folder
  • 过滤掉所有以开头的String(以便剩下的)
  • 调用cp命令
    • 每个文件一次(-n1说要分别调用cp每个文件)
    • 使用,作为其参数,% dest_folder其中%被实际文件名替换。
于 2011-01-12T14:29:27.870 回答
1
cp src_folder/!(String*) dest_folder

试试看~克里斯

于 2011-01-12T14:32:40.027 回答