用于复制特定文件集的bash脚本

时间:2012-09-09 06:50:18

标签: bash

我有一组以1到1000 .csv的数字命名的文件,我想要复制名称以1或2位数字开头的文件(例如1,10,11,12等)。 怎么办呢?

2 个答案:

答案 0 :(得分:2)

您可以轻松完成:

cp 1[0-9].csv /home
cp 1.csv /home

将其另存为 file.sh 然后以

运行
$bash file.sh

这会将所有文件复制到主目录

答案 1 :(得分:1)

应始终有效的正确方法:

find -regex '\./1[0-9]?\.csv' -exec cp {} destination \;

由于find使用完整路径,我们必须在开头匹配./。然后是文字1,然后选择(注意?)范围0-9中的字符,最后是扩展名。任何.必须转义为\.

对于每个匹配的文件,find将执行-exec给出的命令,直到\;,用文件名替换{}

要检查它是否捕获了正确的文件,请执行以下操作:

find -regex '\./1[0-9]?\.csv'

一种更简单的方法,如果您的目录中没有其他混乱,则可以正常工作:

cp 1.csv 1?.csv destination