I have a number of tiff files named:
sw.001.tif
sw.002.tif
...
and I want to remove the .tif
at the end of each of the files. How can I use the rename
command to do this?
I have a number of tiff files named:
sw.001.tif
sw.002.tif
...
and I want to remove the .tif
at the end of each of the files. How can I use the rename
command to do this?
perl
's rename
(as typically found on Debian where it's also called prename
), or this derivative (rename
package on Debian):
rename 's/\.tif$//' *.tif
util-linux
rename
(as typically found on Red Hat, rename.ul
on Debian):
rename -- .tif '' *.tif
(note that that one would rename blah.tiffany.tif
to blahfany.tif
)
For a non-rename, you might do:
$ for i in *.tif; do mv -i $i `basename $i .tif`; done
(-i to warn against replacing a file)
./
is a pretty safe prefix to prevent file names from being misinterpreted, for example a file beginning with -
may be interpreted as option. Example
– jw013
Jul 05 '21 at 13:50
-i
to -f
(CentOS 6) to force overwrite.
– LuxZg
Jun 05 '23 at 09:22
If you use IBM AIX you won't have a rename
command, so in order to batch remove file extensions you'll have to use plain vanilla System V UNIX commands:
for file in *.tif; do
mv $file `echo $file | sed 's/.tif$//'`;
done;
rename -- .oldext .newext *.oldext
This substitutes the old extension with the new one. To simply remove the extension you can explicitly pass in an empty string as an argument.
rename -- .gz.tmp '' *.gz.tmp
With the above command all files with .gz.tmp
extension in the current folder will be renamed to filename.gz
.
Refer to the article : Linux: remove file extensions for multiple files for details.
rename
which is incompatible with (and much more limited than) the traditional rename
command from perl
.
– Stéphane Chazelas
May 27 '15 at 09:49
.oldext
within the file name, not necessarily the extension (foo.oldextasy.oldext
would be renamed to footasy.oldext
).
– Stéphane Chazelas
May 27 '15 at 09:50