重命名终端中的多个文件
我在一个文件夹中有40个mp4文件。
每个文件都以video_
。 每个文件都是格式video_*.mp4
。
我需要重命名所有文件,其中video_
从每个文件的video_
删除。 我怎么能从终端那里做到这一点?
您可以通过这些文件所在目录中的终端命令来执行此操作。
rename 's/^video_//' *.mp4
这意味着选择以video_
所有文件名, video_
替换为video_
。 我猜s
是为了“替代”。
^
显示字符串的开头。 如果省略^
,则无论字符串位于何处,都将删除第一次出现的video_
。 但在你的情况下,这并不重要。
-
使用
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_
。
-
使用rename
rename 's/^video_//' *.mp4