如何重命名多个文件,因为使用 mv 或 rename *.* 不起作用?

如何重命名多个文件,因为使用 mv 或 rename *.* 不起作用?

笔记:问完这个问题后,我发现 Xubuntu 自带的文件浏览器 Thunar 可以在任何 Ubuntu 版本中安装,并且提供了对我来说很好用的批量重命名实用程序。


我正在尝试将时间戳哈希值附加到目录中的文件或像文件密码一样的用户文件代码(例如,用户的所有文件都有前缀或后缀)。

我的问题是该mv命令只能工作一次,所以我不能像这样使用通配符

mv *.* *.*_dateHashsuffix

错误表明它不是一个目录。

似乎mv无法处理多个重命名,或者我必须像在cd /usr/bin && sudo mv test test_disabled && mv sudo sudo_disabled...中那样使用它换句话说,也许我必须在具有可执行权限的文件脚本中单独管道ls > filelist.tst然后解析(我|grep在这里使用吗?)这样运行或者我不能直接在脚本中使用它?.sh./myscriptsname.shls >

我认为将来我的服务器上可以使用它来重命名变量和文件以防止黑客入侵。但更好的想法可能是在基于体素的 Web 浏览器中使用 torrentDNS 和 zipSites,其中包含指向网页内容的链接。

答案1

您不能在 -command 的目标中使用通配符mv。您认为是通配符的内容将被解释为目标名称的前三个字符。

mv *.* *.*_something

将尝试将当前目录中文件名中带有点的任何文件重命名为名称*.*_something。对于 shell 找到的第一个文件,此操作将成功。第二次尝试将失败,因为该文件*.*_something已存在,因此您会收到一条错误消息,指出目标不是目录。

你必须走另一条路:

for num in *.*; do mv "${num}" "${num}_something"; done

相关内容