您可以使用它${file%-*}来获取所需的文件名.以下代码循环遍历名称结尾的所有文件,html-bak并通过删除最后一个破折号后的所有内容来执行重命名:
for file in *html-bak
do
echo "mv $file ${file%-*}" # <-- using "echo" for safety. Remove once checked
done
Run Code Online (Sandbox Code Playgroud)
${var%-*}条的最短匹配*的从后面$var.也就是说,删除直到-从右边开始找到第一个破折号:
$ file="1.h-tml-bak"
$ echo ${file%-*}
1.h-tml
Run Code Online (Sandbox Code Playgroud)
您当然也可以使用长度来获取除最后4个字符之外的所有内容:
$ echo ${file:0:-4}
1.h-tml
Run Code Online (Sandbox Code Playgroud)