我有一个充满需要更改的文件名的目录。我不需要简单地重命名后缀或前缀,而是完全重命名文件。
我将新文件名包含在一个名为 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}' )