假设我有一个包含一些文件的文件夹:
/Users/user101/Temp/rentest: ls
fi_name1.txt fi_name2.txt fi_name3.txt
我正在寻找一种灵活的重命名方法。例如,如果我这样做:
/Users/user101/Temp/rentest: ls | vim -
我进入 vim:
现在我该如何将其重定向回终端?此外,我该如何将其与mv
命令结合使用来批量重命名目录中的文件?
我知道这很有rename
用,大多数人的反应是只需学习一堆terminal
命令,但我发现这是一种更有趣/更灵活的方法。有人知道这种方法或曾经尝试过吗?
编辑:人们倾向于stackexchange
抓住问题的细节。但我不寻求这样的答案:“哦,你一个接一个地处理文件,所以只需使用mv
”或“哦,列编辑模式只允许你对所有文件进行一种更改”。
这里的重点是,我不想每次想要为目录中的一堆文件添加前缀、后缀或某种奇怪的内缀时都去谷歌搜索。而且它可能不是全部文件。
/Users/ivanabraham/Temp/rentest: ls
fi_name1.txt fi_name2.txt fi_name3.txt gi_name3.txt gi_name4.txt
和
ls | grep 'fi*' | vim -
例如。
答案1
答案2
看起来这个工具集没有得到维护,但我仍然使用它:https://www.nongnu.org/renameutils/
具体来说:
qmv(“快速移动”)程序允许在文本编辑器中编辑文件名。目录中所有文件的名称都写入文本文件,然后由用户编辑。读取并解析文本文件,并将更改应用于文件。
qmv
可以在多种模式下运行,但我更喜欢使用它与命令行选项,-fdo
该选项仅将目标列为编辑器中的一列。