mmv(一种大规模移动实用程序)可以很好地重命名以下文件:
- foo.txt
- 栏.txt
- 巴兹.txt
到:
- 1.txt
- 2.txt
- 3.txt
手册页很有趣,但我不太遵循说明:
Rename all *.jpeg files in the current directory to *.jpg:
mmv '*.jpeg' '#1.jpg'
变量可以#1
设置为递增的整数吗?虽然我不怀疑这是可能的,但仅使用 bash 或其他脚本是否同样容易(或困难)?
1.txt
为了简单起见,忽略可能的覆盖问题。或者,复制到子目录中。
也可以看看:
https://stackoverflow.com/questions/3211595/
答案1
我的系统上没有该程序 - 事实上,我不记得以前听说过它 - 但我读过该手册页的副本,并且该程序似乎不包含您想要的功能。但是,如果您特别想对 执行此操作mmv
,您可能想尝试以下操作:
mmv -an "*.txt" bogus.target > /tmp/mmv.list
告诉不要做任何动作,-n
而mmv
只是报告如果您没有指定它会做什么-n
。告诉-a
它将所有文本文件附加到一个文件中bogus.target
- 事实上,手册页给出了一个非常相似的示例(但没有选项-n
) - 我在这里使用它只是为了说服mmv
允许多个源文件碰撞到一个目标中。这应该会生成一个/tmp/mmv.list
看起来像这样的文件
bar.txt -> bogus.target
baz.txt -> bogus.target
foo.txt -> bogus.target
(我假设它将按字典顺序(字母顺序)或目录顺序(可能看起来是任意顺序)列出文件。如果您想要其他顺序,则需要找到某种方法来指定。)然后处理该文件(例如,使用脚本,待定)以替换出现的、bogus.target
、等。然后执行1.txt
2.txt
3.txt
mmv < /tmp/mmv.list
注意事项:我还没有尝试过这个(因为正如我所说,我什至没有该软件)。您可能应该先对一些不重要的文件进行试运行,和/或在执行此操作之前备份所有文件。
另请注意,这可能至少与您链接的问题的一些答案一样多。正如我所说,我提供此建议只是为了防止您特别想使用mmv
.
PS 我的回答(上面)部分受到启发这个。