如何在bash中使用不同名称但扩展名相同的目录复制多个文件?

时间:2017-06-30 09:58:41

标签: linux bash shell

要求是在同一个linux目录中复制n(n> 10000)个文件。 文件的扩展名必须完整,并且可以添加数字以区分文件。

例如如果一个文件是text1.txt,另一个文件可能是text2.txt

但我必须从多个文件创建多个副本,而不是从单个文件创建。

请帮忙。

2 个答案:

答案 0 :(得分:0)

Bash模式替换可能会对您有所帮助。如果你是想要复制所有.txt文件,你可以这样做:

for file in *.txt # add any other name wildcards
do
    filename=${file%.*} # removes everything after the last dot
    extension=${file##*.} # removes everything before the last dot
    cp "$file" "${filename}-copy.${extension}" # adds the -copy suffix to every copy
done

答案 1 :(得分:0)

您可能希望查看logrotate之类的工具,这些工具可以采用例如glob并定期轮换每个文件。