什么是“命令行”“从末尾删除某个字符文件名。例如,subash.jpg.jpg。我想删除“.jpg“从上一次开始,我就遇到了“重命名文件”的问题。
答案1
rename
是文件重命名的完美命令 :) 它具有广泛的选项,并且mv
还可以与正则表达式配合使用。对于你的情况,以下语法一定可以完成这项工作:
rename 's/\.jpg\.jpg$/.jpg/' *.jpg.jpg
解释:
- 表达式的
s/searched/replace/
意思是把表达式s
替换searched
为replace
字符串。 \.jpg\.jpg$
将匹配以 结尾$
的任何行.jpg.jpg
,其中反斜杠将转义正则表达式中点的特殊含义。*.jpg.jpg
将由 shell 扩展为.jpg.jpg
当前目录中以 结尾的所有文件的列表。
如果您的系统中不存在该命令,则需要安装它:
sudo apt update && sudo apt install rename
答案2
如果文件名${var%sub}
包含在 shell 变量中,您可以使用ex从末尾删除最短匹配的子字符串。
$ f=subash.jpg.jpg
$ echo "${f%.jpg}"
subash.jpg
例如
mv "$f" "${f%.jpg}"
您还可以使用通配符${f%.*}
来删除任意点后缀。
答案3
使用mv
命令重命名文件。如果文件位于当前工作目录中,则命令为:
mv ./subash.jpg.jpg ./subash.jpg
尝试man mv
获取命令上的文档。