我有一个文件夹列表video_0001
video_0002
video_0003
...我如何将它们全部重命名为0001
0002
0003
...?我试过了
mv video_{0001..0003} {0001..0003}
但它不起作用
答案1
for
您可以通过从每个文件的第 7 个字符开始(记住从 0 开始计数)并保存每个文件的最后 4 个字符来循环执行此操作。
for f in video_*; do mv $f ${f:6:4}; done
答案2
安装rename
方式
sudo apt install rename
然后运行
rename s/video_// *
答案3
为了完整性:
使用
mmv
(来自包mmv
):mmv -n 'video_*' '#1'
与
zsh
和zmv
zsh autoload zmv zmv -n 'video_(*)' '$1'
在上述两种情况下,-n
一旦您确认它正在做正确的事情,就可以将其删除。
更便携的 shell 循环:
for f in video_*; do echo mv "$f" "${f#*_}"; done
类似地删除echo
。请注意,#*_
删除最短前缀;在您希望删除最长前缀的情况下,例如my_long_video_1234
更改为##*_
。