在Linux中,如何复制不以给定字符串开头的所有文件?

mst*_*oiu 6 regex unix linux cp

我尝试使用以下命令:

cp src_folder/[!String]* dest_folder
Run Code Online (Sandbox Code Playgroud)

但是,此命令将复制所有不以任何字符'S','t','r','i','n','g'开头的文件,而不是复制不复制的文件以"String"开头.

Did*_*set 14

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

ls src_folder | grep -v '^String' | xargs cp -t dest_folder
Run Code Online (Sandbox Code Playgroud)
  • 列出所有文件 src_folder
  • 过滤掉所有开头的 String
  • 将所有剩余的文件复制到 dest_dir


Ign*_*ams 5

在bash中:

shopt -s extglob
cp src_folder/!(String*) dest_folder
Run Code Online (Sandbox Code Playgroud)