想要将多个 *.txt 文件从多个目录复制到同一目录,但重命名新文件

想要将多个 *.txt 文件从多个目录复制到同一目录,但重命名新文件

我在数百个目录中至少有 2-3 个 *.txt 文件。我需要的是: 1.将每个目录中的 *.txt 复制到同一目录,但将文件名重命名为 *_name.txt (* 应该是 .txt 的原始名称,并且字符串“name”对于所有目录都是相同的我可以使用 pax 来执行此操作吗?

答案1

这不使用pax,但这是一种非常简单的方法来完成您需要完成的事情:

IFS="\n"
for file in *.txt; do
    cp -- "$file" "${file%.txt}_name.txt"
done

该构造将从;值的末尾${var%suffix}剥离。这用于删除文件扩展名。 suffix$var

相关内容