如何将具有不同名称的多个文件重命名为 file1、file2、file3 等?

Den*_*ves 4 command-line bash rename batch-rename

假设我的文件夹中有这些文件:

cat.txt
dog.txt
house.txt
tree.txt
Run Code Online (Sandbox Code Playgroud)

我想将它们全部重命名为这样的:

file1.txt
file2.txt
file3.txt
file4.txt
Run Code Online (Sandbox Code Playgroud)

这可以通过命令行完成吗?

我只看到有关重命名具有某种模式的文件的问题,例如 rename dog1.txtdog2.txt-> cat1.txtcat2.txt.

Rav*_*ina 5

使用rename实用程序来做到这一点:

rename -n '$_ = sprintf "file%d.txt", ++$::count' *
Run Code Online (Sandbox Code Playgroud)

笔记

  • -n使命令显示如果运行它会发生什么。如果输出是你想要的,运行它而不-n实际重命名文件。
  • 更换*你想要重命名,例如什么:dog*.txt仅重命名dog1.txtdog2.txt......对file1.txtfile2.txt等等。
  • $_ 是我们应该修改的默认输入(文件名)。
  • 使用=我们正在修改它
  • sprintf我们定义开始由一个模式file之后%d手段号和结束的.txt
  • 数字 (%d) 将使用 分配++$::count,这是每次重命名后迭代的简单计数器。

这个想法来自这里