重命名文件并删除最后一个

重命名文件并删除最后一个

什么是“命令行”“从末尾删除某个字符文件名。例如,subash.jpg.jpg。我想删除“.jpg“从上一次开始,我就遇到了“重命名文件”的问题。

答案1

rename是文件重命名的完美命令 :) 它具有广泛的选项,并且mv还可以与正则表达式配合使用。对于你的情况,以下语法一定可以完成这项工作:

rename 's/\.jpg\.jpg$/.jpg/' *.jpg.jpg

解释:

  • 表达式的s/searched/replace/意思是把表达式s替换searchedreplace字符串。
  • \.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获取命令上的文档。

相关内容