Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I have a number of tiff files named:


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?

share|improve this question
Bear in mind that NO linux or unix filesystem uses Windows or VMS-style "extensions" - it is only by convention that a suffix of the file name is ".tif" or ".c" or ".o" or ".so" or whatever. –  Bruce Ediger Mar 19 '12 at 23:07
That's fine... I'm importing files from windows to linux :) –  Paul Mar 19 '12 at 23:14
Technically speaking Windows doesn't use file extensions either, it's just that Windows 95's file manager kept using the last characters of the filename to determine file type after breaking out of the MS-DOS naming scheme and the convention has since remained. –  RAKK Feb 20 at 19:04

3 Answers 3

up vote 13 down vote accepted

Debian rename:

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

Red Hat rename:

rename .tif '' *.tif
share|improve this answer
I believe the "Debian" rename is by Larry Wall (comes with Perl?) and "Red Hat" one is from util-linux (rename.ul in Debian IIRC). –  XTL Mar 20 '12 at 14:19
@XTL: True. I just call them that because they're the "rename" programs found in Debian or Red Hat derivatives. –  Ignacio Vazquez-Abrams Mar 20 '12 at 14:39
Thanks so much! I never realized that there were different versions of 'rename'. I assume there are other subtle differences between the commands in debian & redhat. I'll have to lookup some of their differences. –  Paul Mar 20 '12 at 14:45

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)

share|improve this answer
Safer faster version: for i in ./*.tif; do mv -i "$i" "${i%.tif}"; done –  jw013 Mar 20 '12 at 14:13

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$//';
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.