Debian Admin

Debian/Ubuntu Linux System Administration Tutorials,Howtos,Tips

  • RSS Subscribe

    subscribe to the Debian Admin RSS feed
  • Sponsors



  • Categories

  • Sponsors

  • Support DebianAdmin

    Amount $:
    Website(Optional):


  • Meta

  • Archives



Rename multiple files to another extension in Linux

Posted by Admin on August 12th, 2007

If you're new here, you may want to subscribe to my RSS feed. Thanks for visiting!

Let us say that you want to rename all of your “.php5″ files to “.php” files. You can use for loop.


for old in *.php5; do cp $old `basename $old .php5`.php; done

Thats all there is to it. Let us say you need to rename index.php5 to index.php. The way above snippet works is that it loops through current directory and finds all the files with extension “.php5″ and processes ‘one by one. In our index.php5 file example, it finds index.php5 file, does a cp index.php5 `basename index.php5 .php5`.php <- basename returns “index” so you add .php to it and now you are left with index.php. Of course you can do mv command if you want to just move the file to new name.

  • Share/Bookmark

Random Posts

8 Responses to “Rename multiple files to another extension in Linux”

  1. jds Says:

    ich mag prename lieber …

  2. James Says:

    You can also use the ‘rename’ command included with most debian installs. It’s a little more intuitive, imho.

    $ rename
    Usage: rename [-v] [-n] [-f] perlexpr [filenames]

    $ rename ’s/\.php5/.php/’ *.php5

  3. Christian Geisert Says:

    And I’m using ‘mmv’ ;-)

  4. hron84 Says:

    And this can be usede too:

    #!/bin/bash
    for x in *.php5; do n=${x/.php5/.php}; mv $x $n; done

    And it’s can be used in other dir than ‘.’

  5. Zodak Says:

    The same can be done using the parameter expansion feature of the bash shell.

    for a in *php5 ; do mv $a ${a%%5} ; done

  6. Fagner Says:

    Good job!

  7. Vincent Says:

    What all those commands do not cover is to add an extension to a file that has none.
    How would that work?

  8. Will Says:

    Vincent,

    for old in *; do mv $old `basename $old`.zip; done

    * = all files, you can change that though. like FILE*

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>