我正在寻找一个unix命令行程序,用于在编辑器或内联中以可视化方式重命名文件(或多个文件)(方式与您在桌面上重命名文件相同)。
例子。我经常需要在某个深层的地方重命名文件。想象一下一个.js.txt
扩展名错误的文件(_
是一个光标):
$ mv deep/inside/there/is/a/file.js.txt _
将整个路径作为第二个参数重复很容易引起混淆mv
:
$ mv deep/inside/there/is/a/file.js.txt deep/inside/there/is/a/file.js
(我知道我可以使用鼠标,但它仍然容易出错)。我最好按下Home
并切换mv
到可视化重命名器(想象它被称为vmv
)。例如:
$ vmv somewhere/deep/inside/there/is/a/file.js.txt
EDIT FILE NAME: somewhere/deep/inside/there/is/a/file.js.txt_
答案1
编写您自己的代码。将其放在名为 的文件中vmv
,使其可执行,~/bin
然后将其放在您想要的任何位置:
#!/bin/bash
for oldname; do
read -rep "Edit: " -i "$oldname" newname
if [[ $oldname != $newname ]]; then
mv -v "$oldname" "$newname" || exit $?
fi
fi
完全符合您的要求。
在 bash 中,你可以在编辑器中编辑当前命令行:
mv deep/inside/there/is/a/file.js.txt
Ctrl-XCtrl-E
更多工具有:
vidir
Debian 附带一个接受正则表达式的 Perl 脚本:
prename 's/\.txt$//' file.js.txt