答案1
使用更多实用程序的vidir
.
vidir oldname
将打开文件路径$EDITOR
(可以是基于文本的编辑器或图形编辑器,例如codium -w
)。例如nano
:
人们可以根据需要提供任意数量的文件,vidir
因为其主要用例是一次重命名许多文件:
vidir mydir/*
答案2
可以在如下脚本中完成:
#! /bin/zsh -
zmodload zsh/system
ret=0
for old do
new=$old
ERRNO=0
if [[ ! -e $old && ! -L $old ]]; then
syserror -p "$old: "
elif
vared -p "Renaming $old:q to: " new &&
[[ -n $new && $old != $new ]]
then
mv -iv -- "$old" "$new" || ret=$?
fi
done
exit $ret
请注意,如果目标文件($new
由 编辑vared
)最终成为以下类型的文件目录(或目录的符号链接),像往常一样,mv
将尝试移动源 ( $old
) 文件进入它。使用 GNU mv
,您可以添加选项-T
来尝试将文件重命名为该文件。
shellbash
必须IFS= read -rep Prompt -i "$old" new
执行一些类似于 zsh 的操作vared
(var
iable ed
itor ),但它对于包含换行符的文件名无法正常工作。
1 在最新版本中,添加-d ''
允许输入多行文件名,但随后您需要按Ctrl+J或Ctrl+ @/ Space(无论您的终端发送 NUL 的任何组合)来接受新文件名。
答案3
我创建了一个轻量级命令行重命名实用程序除其他功能外,它还允许通过其edit
命令直接编辑:
项目主页:
https://github.com/fonic/infiren
依赖项:
Bash、GNU 查找