我的一个文件夹中有 40 个 mp4 文件。
每个文件都以 开头video_
。每个文件的格式都是video_*.mp4
。
我需要重命名所有文件,并video_
从每个文件的开头删除。我该如何从终端执行此操作?
答案1
您可以通过这些文件所在目录中的终端命令来执行此操作。
rename 's/^video_//' *.mp4
这意味着选择所有以 开头的文件名video_
并用空字符替换video_
。我猜s
是“替换”的意思。
^
显示字符串的开头。如果省略^
,则无论第一次出现的video_
位于字符串的什么位置,它都将被删除。但对于您来说,这并不重要。
笔记:Ubuntu 17.04 以上版本不附带此rename
软件包,但你仍然可以通过以下方式从默认存储库安装它sudo apt install rename
答案2
使用
rename
(prename
) :rename -n 's/^video_//' video_*.mp4
如果您对将要进行的更改感到满意,请删除
-n
以让操作实际发生:rename 's/^video_//' video_*.mp4
使用
bash
参数扩展:for file in video_*.mp4; do mv -i "$file" "${file#video_}"; done
${file#video_}
video_
是从文件名开头删除的参数扩展模式。
或者
for file in video_*.mp4; do mv -i "$file" "${file/video_/}"; done
假设
video_
文件名中只出现一次${file/video_/}
是一个bash
参数扩展模式,它将video_
用空白替换文件名。
答案3
使用rename
rename 's/^video_//' *.mp4