a.v*_*a.v 6 command-line rename batch-rename
我有一堆需要重命名的文件,但我不想为其创建脚本,只是一个命令行。
我需要删除.和之间的最后一位数字.gif:
22771786_01.204.gif
22771786_02.203.gif
22771786_03.10.gif
22771786_04.56.gif
Run Code Online (Sandbox Code Playgroud)
要像这样:
22771786_01.gif
22771786_02.gif
22771786_03.gif
22771786_04.gif
Run Code Online (Sandbox Code Playgroud)
Arr*_*cal 14
您可以使用 for 循环和一些 bash 扩展来实现这一点。如果您已经在包含文件的目录中:
for f in ./*; do mv "$f" "${f%.*.gif}.gif" ; done
Run Code Online (Sandbox Code Playgroud)
如果包含文件的目录名为 /home/gifstore/ :
for f in /home/gifstore/*; do mv "$f" "${f%.*.gif}.gif" ; done
Run Code Online (Sandbox Code Playgroud)
对${f...}我们保存到名为 的变量中的每个文件名进行扩展f。在%从可变的端部中的文件名装置的膨胀删除以下图案的最短匹配。模式是.*.gif,表示.和之间的任意数量的字符.gif。最后,我们.gif在扩展之外附加文字字符串来创建我们的新文件名,并依赖于mv命令来移动文件。
这不适用于隐藏文件,以..