如何通过删除扩展名来重命名多个文件?

如何通过删除扩展名来重命名多个文件?

我有许多 tiff 文件,名为:

sw.001.tif
sw.002.tif
...

我想删除.tif每个文件末尾的 。我如何使用该rename命令来执行此操作?

答案1

perlrename(通常在 Debian 上找到,也称为prename),或者这个衍生品renameDebian 上的软件包):

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

util-linux rename(通常在 Red Hat、rename.ulDebian 上找到):

rename -- .tif '' *.tif

(请注意,该名称将重命名blah.tiffany.tifblahfany.tif

答案2

对于非重命名,您可以这样做:

$ for i in *.tif; do mv -i $i `basename $i .tif`; done

(-i 警告不要替换文件)

答案3

rename -- .oldext .newext *.oldext

这会将旧扩展替换为新扩展。要简单地删除扩展,您可以显式传递一个空字符串作为参数。

rename -- .gz.tmp  '' *.gz.tmp

使用上述命令,.gz.tmp当前文件夹中所有扩展名的文件都将重命名为filename.gz.

参考文章:Linux:删除多个文件的文件扩展名了解详情。

答案4

perl-rename 's/\.tif//' *.tif

用于-n试运行。

相关内容