批量删除文件扩展名

目录中有如下两个文件

1.txt.file touch 2.txt.file

想要实现删除.file,即扩展名,可通过以下脚本快速实现

for file in $(ls *.file);do ext=${file%.*};mv $file $ext;done

其中${file%.*}为获取文件名,mv$file $ext为重命名操作


附加:echo ${file##*.}      可获取文件的扩展名

      echo ${file%.*}       可获取文件名

root@oldboy extension_name$file=1.txt.file

root@oldboy extension_name$echo ${file%.*}    最短匹配,获取文件名
1.txt
root@oldboy extension_name$echo ${file%%.*}  
1

root@oldboy extension_name$echo ${file##*.}   启用最长匹配,获取扩展名
file
root@oldboy extension_name$echo ${file#*.}
txt.file

你可能感兴趣的:(字符串,shell,重命名)