用于在编辑器或内联程序中重命名文件的 Unix 实用程序

用于在编辑器或内联程序中重命名文件的 Unix 实用程序

我正在寻找一个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

相关内容