如何将目录中的文件名更改为文件中包含的新名称?

如何将目录中的文件名更改为文件中包含的新名称?

我有一个充满需要更改的文件名的目录。我不需要简单地重命名后缀或前缀,而是完全重命名文件。

我将新文件名包含在一个名为 new_names.txt 的文件中。

我可以使用什么命令来读取 new_names 中包含的名称并重命名目录中的文件?

答案1

您可以使用它来生成命令列表mv

paste /path/to/new_names <(ls /path/to/files | grep -v new_names) | awk '$2 !~ /^$/ {print "mv " $2,$1}'

如果看起来不错,那么您可以使用以下命令执行它:

cd /path/to/files
$( paste /path/to/new_names <(ls /path/to/files | grep -v new_names) | awk '$2 !~ /^$/ {print "mv " $2,$1}' )

相关内容