What's the difference between 'rename' and 'mv'?What's with all the renames: prename, rename, file-rename?Quickest way to rename files, without retyping directory pathRename multiple files with mv to change the extensionrename multiple files with one variableWhat's with all the renames: prename, rename, file-rename?Rename all files with the same extension and any nameRename files to the inodeRename characters within a specific file using find and variables?using Find -exec to rename a file with the grepped contents of the fileRename files based on listBatch rename files to move sequence from end to beginning

How to draw the figure with four pentagons?

What reasons are there for a Capitalist to oppose a 100% inheritance tax?

Do I have a twin with permutated remainders?

How can saying a song's name be a copyright violation?

What is the intuition behind short exact sequences of groups; in particular, what is the intuition behind group extensions?

What mechanic is there to disable a threat instead of killing it?

Plain language with long required phrases

I Accidentally Deleted a Stock Terminal Theme

Why is it a bad idea to hire a hitman to eliminate most corrupt politicians?

Can I make "comment-region" comment empty lines?

Is "remove commented out code" correct English?

How do conventional missiles fly?

Can I ask the recruiters in my resume to put the reason why I am rejected?

I'm flying to France today and my passport expires in less than 2 months

What does it mean to describe someone as a butt steak?

How can I tell someone that I want to be his or her friend?

Took a trip to a parallel universe, need help deciphering

Does a druid starting with a bow start with no arrows?

Twin primes whose sum is a cube

Infinite Abelian subgroup of infinite non Abelian group example

What is the word for reserving something for yourself before others do?

AES: Why is it a good practice to use only the first 16bytes of a hash for encryption?

Facing a paradox: Earnshaw's theorem in one dimension

How much of data wrangling is a data scientist's job?



What's the difference between 'rename' and 'mv'?


What's with all the renames: prename, rename, file-rename?Quickest way to rename files, without retyping directory pathRename multiple files with mv to change the extensionrename multiple files with one variableWhat's with all the renames: prename, rename, file-rename?Rename all files with the same extension and any nameRename files to the inodeRename characters within a specific file using find and variables?using Find -exec to rename a file with the grepped contents of the fileRename files based on listBatch rename files to move sequence from end to beginning






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








5















It's not completely clear to me, but what is the difference between mv and rename (from util-linux-ng 2.17.2 as /usr/bin/rename)? Are there advantages of one over the other beyond rename accepting regular expressions and mv doesn't? I believe rename can also handle multiple file renames at once, whereas mv does not do this.



I couldn't find a clear indication in their man pages what else sets them apart or through some investigation on my own.










share|improve this question









New contributor




Urda is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.















  • 2





    Let's make sure we're talking about the same things; what are the outputs from type -a rename and rename --version ?

    – Jeff Schaller
    3 hours ago











  • @JeffSchaller It's more of a curiosity on my part, but on one of my *nix machines I get rename is /usr/bin/rename and rename (util-linux-ng 2.17.2) respectively.

    – Urda
    3 hours ago






  • 3





    There are a few different renames out there, and it could have been an alias/function/script, so I just wanted to make sure we knew what it was. Thank you! Please feel free to edit those outputs into your question.

    – Jeff Schaller
    3 hours ago











  • @JeffSchaller no worries, actually this link was one I just found that showed me rename can mean different things in different distros.

    – Urda
    3 hours ago






  • 1





    It seems like your question contains its answer.   “What’s the difference between a jet and a tricycle, other than the fact that a jet can fly, and can go several thousand times faster?”    :-)    ⁠

    – G-Man
    3 hours ago

















5















It's not completely clear to me, but what is the difference between mv and rename (from util-linux-ng 2.17.2 as /usr/bin/rename)? Are there advantages of one over the other beyond rename accepting regular expressions and mv doesn't? I believe rename can also handle multiple file renames at once, whereas mv does not do this.



I couldn't find a clear indication in their man pages what else sets them apart or through some investigation on my own.










share|improve this question









New contributor




Urda is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.















  • 2





    Let's make sure we're talking about the same things; what are the outputs from type -a rename and rename --version ?

    – Jeff Schaller
    3 hours ago











  • @JeffSchaller It's more of a curiosity on my part, but on one of my *nix machines I get rename is /usr/bin/rename and rename (util-linux-ng 2.17.2) respectively.

    – Urda
    3 hours ago






  • 3





    There are a few different renames out there, and it could have been an alias/function/script, so I just wanted to make sure we knew what it was. Thank you! Please feel free to edit those outputs into your question.

    – Jeff Schaller
    3 hours ago











  • @JeffSchaller no worries, actually this link was one I just found that showed me rename can mean different things in different distros.

    – Urda
    3 hours ago






  • 1





    It seems like your question contains its answer.   “What’s the difference between a jet and a tricycle, other than the fact that a jet can fly, and can go several thousand times faster?”    :-)    ⁠

    – G-Man
    3 hours ago













5












5








5








It's not completely clear to me, but what is the difference between mv and rename (from util-linux-ng 2.17.2 as /usr/bin/rename)? Are there advantages of one over the other beyond rename accepting regular expressions and mv doesn't? I believe rename can also handle multiple file renames at once, whereas mv does not do this.



I couldn't find a clear indication in their man pages what else sets them apart or through some investigation on my own.










share|improve this question









New contributor




Urda is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












It's not completely clear to me, but what is the difference between mv and rename (from util-linux-ng 2.17.2 as /usr/bin/rename)? Are there advantages of one over the other beyond rename accepting regular expressions and mv doesn't? I believe rename can also handle multiple file renames at once, whereas mv does not do this.



I couldn't find a clear indication in their man pages what else sets them apart or through some investigation on my own.







rename mv






share|improve this question









New contributor




Urda is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




Urda is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited 1 hour ago









Kusalananda

139k17261433




139k17261433






New contributor




Urda is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 3 hours ago









UrdaUrda

1294




1294




New contributor




Urda is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Urda is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Urda is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







  • 2





    Let's make sure we're talking about the same things; what are the outputs from type -a rename and rename --version ?

    – Jeff Schaller
    3 hours ago











  • @JeffSchaller It's more of a curiosity on my part, but on one of my *nix machines I get rename is /usr/bin/rename and rename (util-linux-ng 2.17.2) respectively.

    – Urda
    3 hours ago






  • 3





    There are a few different renames out there, and it could have been an alias/function/script, so I just wanted to make sure we knew what it was. Thank you! Please feel free to edit those outputs into your question.

    – Jeff Schaller
    3 hours ago











  • @JeffSchaller no worries, actually this link was one I just found that showed me rename can mean different things in different distros.

    – Urda
    3 hours ago






  • 1





    It seems like your question contains its answer.   “What’s the difference between a jet and a tricycle, other than the fact that a jet can fly, and can go several thousand times faster?”    :-)    ⁠

    – G-Man
    3 hours ago












  • 2





    Let's make sure we're talking about the same things; what are the outputs from type -a rename and rename --version ?

    – Jeff Schaller
    3 hours ago











  • @JeffSchaller It's more of a curiosity on my part, but on one of my *nix machines I get rename is /usr/bin/rename and rename (util-linux-ng 2.17.2) respectively.

    – Urda
    3 hours ago






  • 3





    There are a few different renames out there, and it could have been an alias/function/script, so I just wanted to make sure we knew what it was. Thank you! Please feel free to edit those outputs into your question.

    – Jeff Schaller
    3 hours ago











  • @JeffSchaller no worries, actually this link was one I just found that showed me rename can mean different things in different distros.

    – Urda
    3 hours ago






  • 1





    It seems like your question contains its answer.   “What’s the difference between a jet and a tricycle, other than the fact that a jet can fly, and can go several thousand times faster?”    :-)    ⁠

    – G-Man
    3 hours ago







2




2





Let's make sure we're talking about the same things; what are the outputs from type -a rename and rename --version ?

– Jeff Schaller
3 hours ago





Let's make sure we're talking about the same things; what are the outputs from type -a rename and rename --version ?

– Jeff Schaller
3 hours ago













@JeffSchaller It's more of a curiosity on my part, but on one of my *nix machines I get rename is /usr/bin/rename and rename (util-linux-ng 2.17.2) respectively.

– Urda
3 hours ago





@JeffSchaller It's more of a curiosity on my part, but on one of my *nix machines I get rename is /usr/bin/rename and rename (util-linux-ng 2.17.2) respectively.

– Urda
3 hours ago




3




3





There are a few different renames out there, and it could have been an alias/function/script, so I just wanted to make sure we knew what it was. Thank you! Please feel free to edit those outputs into your question.

– Jeff Schaller
3 hours ago





There are a few different renames out there, and it could have been an alias/function/script, so I just wanted to make sure we knew what it was. Thank you! Please feel free to edit those outputs into your question.

– Jeff Schaller
3 hours ago













@JeffSchaller no worries, actually this link was one I just found that showed me rename can mean different things in different distros.

– Urda
3 hours ago





@JeffSchaller no worries, actually this link was one I just found that showed me rename can mean different things in different distros.

– Urda
3 hours ago




1




1





It seems like your question contains its answer.   “What’s the difference between a jet and a tricycle, other than the fact that a jet can fly, and can go several thousand times faster?”    :-)    ⁠

– G-Man
3 hours ago





It seems like your question contains its answer.   “What’s the difference between a jet and a tricycle, other than the fact that a jet can fly, and can go several thousand times faster?”    :-)    ⁠

– G-Man
3 hours ago










4 Answers
4






active

oldest

votes


















2














mv



It's a basic command line designed to do one thing and do it well (Unix philosophy) : move file(s) or directorie(s).



You can hack STDOUT & STDIN¹ to modify on the fly the destination string, but it's just not a smart hack



rename (Perl's one)



warningThere are other tools with the same name which may or may not be able to do this, so be careful.



When people talk about rename, we think about this one, not the ELF one, less powerful (magic?).



It's not basic, it's Perl. You can pass some Perl's functions inside, and it's extremely powerful.



Consider this example :



You want to rename a bunch of files like



foobar_1.txt
foobar_2.txt
foobar_3.txt


You can prepend zeros to the digits with sprintf() like this (using regex, heh, it's Perl :D ) :



rename 's/(d+)/sprintf("%04d", $1)/e' foobar_*.txt


Now you have :



foobar_0001.txt
foobar_0002.txt
foobar_0003.txt


Not really a basic command, isn't it ?



rename is not really designed to move file(s) and dir(s), but it can do it :



$ mkdir -p /tmp/foo/bar/base
$ touch /tmp/foo/bar/base/file
$ rename 's!/tmp/foo/bar/base/file!/tmp/file!' /tmp/foo/bar/base/file


The moved file



/tmp/file



¹ some code we see on .stackexchange. websites



enter image description here



for FILE in `ls *.txt`
do
mv $FILE `echo $FILE | sed 's/anything_ugly/anything_still_ugly/'`
done


It's not the way to go, it's plain buggy, just to explain why to use the right tool at the right moment






share|improve this answer

























  • +1 for sprintfing with rename

    – Archemar
    2 hours ago


















2














It's basically what it says on the lid, for both.



mv is a standard utility to move one or more files to a given target. It can be used to rename a file, if there's only one file to move. If there are several, mv only works if the target is directory, and moves the files there.



So mv foo bar will either move the file foo to the directory bar (if it exists), or rename foo to bar (if bar doesn't exist or isn't a directory). mv foo1 foo2 bar will just move both files to directory bar, or complain if bar isn't a directory.



mv will call the rename() C library function to move the files, and if that doesn't work (they're being moved to another filesystem), it will copy the files and remove the originals.




On the other hand, the various rename utilities rename files, individually.



The rename from util-linux which you mention makes a simple string substitution, e.g. rename foo bar * would change foobar to barbar, and asdffoo to asdfbar. It does not, however, take a regular expression!



The Perl rename utility (or various instances of it) takes a Perl expression to transform the filenames. One will most likely use an s/pattern/replacement/ command, where the pattern is a regular expression.



Both the util-linux rename and the Perl rename can be used to move files to another directory at the same time, by making appropriate changes to the file name, but it's a bit awkward. Neither does more than call rename() on the files, so moving from one filesystem to another does not work.






share|improve this answer
































    0














    mv simply changes the name of the file (it can also move it to another filesystem or path). You give it an old name and a new name, and it changes the file to the new name or location. rename is used to make bulk naming changes. Say you had a thousand files, foo000.log through foo999.log and you wanted to change them to bar000.log through bar999.log. With mv you'd have to do mv foo000.log bar000.log, mv foo001 bar001.log, etc. or else write a script. With rename you simply do rename foo bar foo*.log, and voila, a thousand files are changed in an instant! Pretty cool. Check out the man rename page again for details.






    share|improve this answer






























      -1














      mv moves or renames files and directories and will back them up; rename just renames files.



      mv has more capabilities and options. Look at the switches in the man pages for each to see the differences in capabilities. Let's take a look using man in Ubuntu 18.04LTS (your mileage may vary depending on the version of each package):



      mv options (omitting help and version)



       --backup[=CONTROL] 
      make a backup of each existing destination file

      -b like --backup but does not accept an argument

      -f, --force
      do not prompt before overwriting

      -i, --interactive
      prompt before overwrite

      -n, --no-clobber
      do not overwrite an existing file

      If you specify more than one of -i, -f, -n, only the final one takes effect.

      --strip-trailing-slashes
      remove any trailing slashes from each SOURCE argument

      -S, --suffix=SUFFIX
      override the usual backup suffix

      -t, --target-directory=DIRECTORY
      move all SOURCE arguments into DIRECTORY

      -T, --no-target-directory
      treat DEST as a normal file

      -u, --update
      move only when the SOURCE file is newer than the destination file or when the destination file is missing

      -v, --verbose
      explain what is being done

      -Z, --context
      set SELinux security context of destination file to default type


      rename options (omitting help and version)



       -s, --symlink 
      Do not rename a symlink but its target.

      -v, --verbose
      Show which files where renamed, if any.

      -n, --no-act
      Do not make any changes.

      -o, --no-overwrite
      Do not overwrite existing files.





      share|improve this answer




















      • 3





        Define 'more powerful'. Does mv support regex like rename ?

        – Gilles Quenot
        3 hours ago












      • As the questioner stated, no.

        – K7AAY
        3 hours ago






      • 1





        Wow, what an argument

        – Gilles Quenot
        2 hours ago











      • Giving credit where credit is due.

        – K7AAY
        2 hours ago











      Your Answer








      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "106"
      ;
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function()
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled)
      StackExchange.using("snippets", function()
      createEditor();
      );

      else
      createEditor();

      );

      function createEditor()
      StackExchange.prepareEditor(
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: false,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: null,
      bindNavPrevention: true,
      postfix: "",
      imageUploader:
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      ,
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      );



      );






      Urda is a new contributor. Be nice, and check out our Code of Conduct.









      draft saved

      draft discarded


















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f510553%2fwhats-the-difference-between-rename-and-mv%23new-answer', 'question_page');

      );

      Post as a guest















      Required, but never shown

























      4 Answers
      4






      active

      oldest

      votes








      4 Answers
      4






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      2














      mv



      It's a basic command line designed to do one thing and do it well (Unix philosophy) : move file(s) or directorie(s).



      You can hack STDOUT & STDIN¹ to modify on the fly the destination string, but it's just not a smart hack



      rename (Perl's one)



      warningThere are other tools with the same name which may or may not be able to do this, so be careful.



      When people talk about rename, we think about this one, not the ELF one, less powerful (magic?).



      It's not basic, it's Perl. You can pass some Perl's functions inside, and it's extremely powerful.



      Consider this example :



      You want to rename a bunch of files like



      foobar_1.txt
      foobar_2.txt
      foobar_3.txt


      You can prepend zeros to the digits with sprintf() like this (using regex, heh, it's Perl :D ) :



      rename 's/(d+)/sprintf("%04d", $1)/e' foobar_*.txt


      Now you have :



      foobar_0001.txt
      foobar_0002.txt
      foobar_0003.txt


      Not really a basic command, isn't it ?



      rename is not really designed to move file(s) and dir(s), but it can do it :



      $ mkdir -p /tmp/foo/bar/base
      $ touch /tmp/foo/bar/base/file
      $ rename 's!/tmp/foo/bar/base/file!/tmp/file!' /tmp/foo/bar/base/file


      The moved file



      /tmp/file



      ¹ some code we see on .stackexchange. websites



      enter image description here



      for FILE in `ls *.txt`
      do
      mv $FILE `echo $FILE | sed 's/anything_ugly/anything_still_ugly/'`
      done


      It's not the way to go, it's plain buggy, just to explain why to use the right tool at the right moment






      share|improve this answer

























      • +1 for sprintfing with rename

        – Archemar
        2 hours ago















      2














      mv



      It's a basic command line designed to do one thing and do it well (Unix philosophy) : move file(s) or directorie(s).



      You can hack STDOUT & STDIN¹ to modify on the fly the destination string, but it's just not a smart hack



      rename (Perl's one)



      warningThere are other tools with the same name which may or may not be able to do this, so be careful.



      When people talk about rename, we think about this one, not the ELF one, less powerful (magic?).



      It's not basic, it's Perl. You can pass some Perl's functions inside, and it's extremely powerful.



      Consider this example :



      You want to rename a bunch of files like



      foobar_1.txt
      foobar_2.txt
      foobar_3.txt


      You can prepend zeros to the digits with sprintf() like this (using regex, heh, it's Perl :D ) :



      rename 's/(d+)/sprintf("%04d", $1)/e' foobar_*.txt


      Now you have :



      foobar_0001.txt
      foobar_0002.txt
      foobar_0003.txt


      Not really a basic command, isn't it ?



      rename is not really designed to move file(s) and dir(s), but it can do it :



      $ mkdir -p /tmp/foo/bar/base
      $ touch /tmp/foo/bar/base/file
      $ rename 's!/tmp/foo/bar/base/file!/tmp/file!' /tmp/foo/bar/base/file


      The moved file



      /tmp/file



      ¹ some code we see on .stackexchange. websites



      enter image description here



      for FILE in `ls *.txt`
      do
      mv $FILE `echo $FILE | sed 's/anything_ugly/anything_still_ugly/'`
      done


      It's not the way to go, it's plain buggy, just to explain why to use the right tool at the right moment






      share|improve this answer

























      • +1 for sprintfing with rename

        – Archemar
        2 hours ago













      2












      2








      2







      mv



      It's a basic command line designed to do one thing and do it well (Unix philosophy) : move file(s) or directorie(s).



      You can hack STDOUT & STDIN¹ to modify on the fly the destination string, but it's just not a smart hack



      rename (Perl's one)



      warningThere are other tools with the same name which may or may not be able to do this, so be careful.



      When people talk about rename, we think about this one, not the ELF one, less powerful (magic?).



      It's not basic, it's Perl. You can pass some Perl's functions inside, and it's extremely powerful.



      Consider this example :



      You want to rename a bunch of files like



      foobar_1.txt
      foobar_2.txt
      foobar_3.txt


      You can prepend zeros to the digits with sprintf() like this (using regex, heh, it's Perl :D ) :



      rename 's/(d+)/sprintf("%04d", $1)/e' foobar_*.txt


      Now you have :



      foobar_0001.txt
      foobar_0002.txt
      foobar_0003.txt


      Not really a basic command, isn't it ?



      rename is not really designed to move file(s) and dir(s), but it can do it :



      $ mkdir -p /tmp/foo/bar/base
      $ touch /tmp/foo/bar/base/file
      $ rename 's!/tmp/foo/bar/base/file!/tmp/file!' /tmp/foo/bar/base/file


      The moved file



      /tmp/file



      ¹ some code we see on .stackexchange. websites



      enter image description here



      for FILE in `ls *.txt`
      do
      mv $FILE `echo $FILE | sed 's/anything_ugly/anything_still_ugly/'`
      done


      It's not the way to go, it's plain buggy, just to explain why to use the right tool at the right moment






      share|improve this answer















      mv



      It's a basic command line designed to do one thing and do it well (Unix philosophy) : move file(s) or directorie(s).



      You can hack STDOUT & STDIN¹ to modify on the fly the destination string, but it's just not a smart hack



      rename (Perl's one)



      warningThere are other tools with the same name which may or may not be able to do this, so be careful.



      When people talk about rename, we think about this one, not the ELF one, less powerful (magic?).



      It's not basic, it's Perl. You can pass some Perl's functions inside, and it's extremely powerful.



      Consider this example :



      You want to rename a bunch of files like



      foobar_1.txt
      foobar_2.txt
      foobar_3.txt


      You can prepend zeros to the digits with sprintf() like this (using regex, heh, it's Perl :D ) :



      rename 's/(d+)/sprintf("%04d", $1)/e' foobar_*.txt


      Now you have :



      foobar_0001.txt
      foobar_0002.txt
      foobar_0003.txt


      Not really a basic command, isn't it ?



      rename is not really designed to move file(s) and dir(s), but it can do it :



      $ mkdir -p /tmp/foo/bar/base
      $ touch /tmp/foo/bar/base/file
      $ rename 's!/tmp/foo/bar/base/file!/tmp/file!' /tmp/foo/bar/base/file


      The moved file



      /tmp/file



      ¹ some code we see on .stackexchange. websites



      enter image description here



      for FILE in `ls *.txt`
      do
      mv $FILE `echo $FILE | sed 's/anything_ugly/anything_still_ugly/'`
      done


      It's not the way to go, it's plain buggy, just to explain why to use the right tool at the right moment







      share|improve this answer














      share|improve this answer



      share|improve this answer








      edited 1 hour ago

























      answered 2 hours ago









      Gilles QuenotGilles Quenot

      16.5k14053




      16.5k14053












      • +1 for sprintfing with rename

        – Archemar
        2 hours ago

















      • +1 for sprintfing with rename

        – Archemar
        2 hours ago
















      +1 for sprintfing with rename

      – Archemar
      2 hours ago





      +1 for sprintfing with rename

      – Archemar
      2 hours ago













      2














      It's basically what it says on the lid, for both.



      mv is a standard utility to move one or more files to a given target. It can be used to rename a file, if there's only one file to move. If there are several, mv only works if the target is directory, and moves the files there.



      So mv foo bar will either move the file foo to the directory bar (if it exists), or rename foo to bar (if bar doesn't exist or isn't a directory). mv foo1 foo2 bar will just move both files to directory bar, or complain if bar isn't a directory.



      mv will call the rename() C library function to move the files, and if that doesn't work (they're being moved to another filesystem), it will copy the files and remove the originals.




      On the other hand, the various rename utilities rename files, individually.



      The rename from util-linux which you mention makes a simple string substitution, e.g. rename foo bar * would change foobar to barbar, and asdffoo to asdfbar. It does not, however, take a regular expression!



      The Perl rename utility (or various instances of it) takes a Perl expression to transform the filenames. One will most likely use an s/pattern/replacement/ command, where the pattern is a regular expression.



      Both the util-linux rename and the Perl rename can be used to move files to another directory at the same time, by making appropriate changes to the file name, but it's a bit awkward. Neither does more than call rename() on the files, so moving from one filesystem to another does not work.






      share|improve this answer





























        2














        It's basically what it says on the lid, for both.



        mv is a standard utility to move one or more files to a given target. It can be used to rename a file, if there's only one file to move. If there are several, mv only works if the target is directory, and moves the files there.



        So mv foo bar will either move the file foo to the directory bar (if it exists), or rename foo to bar (if bar doesn't exist or isn't a directory). mv foo1 foo2 bar will just move both files to directory bar, or complain if bar isn't a directory.



        mv will call the rename() C library function to move the files, and if that doesn't work (they're being moved to another filesystem), it will copy the files and remove the originals.




        On the other hand, the various rename utilities rename files, individually.



        The rename from util-linux which you mention makes a simple string substitution, e.g. rename foo bar * would change foobar to barbar, and asdffoo to asdfbar. It does not, however, take a regular expression!



        The Perl rename utility (or various instances of it) takes a Perl expression to transform the filenames. One will most likely use an s/pattern/replacement/ command, where the pattern is a regular expression.



        Both the util-linux rename and the Perl rename can be used to move files to another directory at the same time, by making appropriate changes to the file name, but it's a bit awkward. Neither does more than call rename() on the files, so moving from one filesystem to another does not work.






        share|improve this answer



























          2












          2








          2







          It's basically what it says on the lid, for both.



          mv is a standard utility to move one or more files to a given target. It can be used to rename a file, if there's only one file to move. If there are several, mv only works if the target is directory, and moves the files there.



          So mv foo bar will either move the file foo to the directory bar (if it exists), or rename foo to bar (if bar doesn't exist or isn't a directory). mv foo1 foo2 bar will just move both files to directory bar, or complain if bar isn't a directory.



          mv will call the rename() C library function to move the files, and if that doesn't work (they're being moved to another filesystem), it will copy the files and remove the originals.




          On the other hand, the various rename utilities rename files, individually.



          The rename from util-linux which you mention makes a simple string substitution, e.g. rename foo bar * would change foobar to barbar, and asdffoo to asdfbar. It does not, however, take a regular expression!



          The Perl rename utility (or various instances of it) takes a Perl expression to transform the filenames. One will most likely use an s/pattern/replacement/ command, where the pattern is a regular expression.



          Both the util-linux rename and the Perl rename can be used to move files to another directory at the same time, by making appropriate changes to the file name, but it's a bit awkward. Neither does more than call rename() on the files, so moving from one filesystem to another does not work.






          share|improve this answer















          It's basically what it says on the lid, for both.



          mv is a standard utility to move one or more files to a given target. It can be used to rename a file, if there's only one file to move. If there are several, mv only works if the target is directory, and moves the files there.



          So mv foo bar will either move the file foo to the directory bar (if it exists), or rename foo to bar (if bar doesn't exist or isn't a directory). mv foo1 foo2 bar will just move both files to directory bar, or complain if bar isn't a directory.



          mv will call the rename() C library function to move the files, and if that doesn't work (they're being moved to another filesystem), it will copy the files and remove the originals.




          On the other hand, the various rename utilities rename files, individually.



          The rename from util-linux which you mention makes a simple string substitution, e.g. rename foo bar * would change foobar to barbar, and asdffoo to asdfbar. It does not, however, take a regular expression!



          The Perl rename utility (or various instances of it) takes a Perl expression to transform the filenames. One will most likely use an s/pattern/replacement/ command, where the pattern is a regular expression.



          Both the util-linux rename and the Perl rename can be used to move files to another directory at the same time, by making appropriate changes to the file name, but it's a bit awkward. Neither does more than call rename() on the files, so moving from one filesystem to another does not work.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 43 mins ago









          Kusalananda

          139k17261433




          139k17261433










          answered 1 hour ago









          ilkkachuilkkachu

          63k10103180




          63k10103180





















              0














              mv simply changes the name of the file (it can also move it to another filesystem or path). You give it an old name and a new name, and it changes the file to the new name or location. rename is used to make bulk naming changes. Say you had a thousand files, foo000.log through foo999.log and you wanted to change them to bar000.log through bar999.log. With mv you'd have to do mv foo000.log bar000.log, mv foo001 bar001.log, etc. or else write a script. With rename you simply do rename foo bar foo*.log, and voila, a thousand files are changed in an instant! Pretty cool. Check out the man rename page again for details.






              share|improve this answer



























                0














                mv simply changes the name of the file (it can also move it to another filesystem or path). You give it an old name and a new name, and it changes the file to the new name or location. rename is used to make bulk naming changes. Say you had a thousand files, foo000.log through foo999.log and you wanted to change them to bar000.log through bar999.log. With mv you'd have to do mv foo000.log bar000.log, mv foo001 bar001.log, etc. or else write a script. With rename you simply do rename foo bar foo*.log, and voila, a thousand files are changed in an instant! Pretty cool. Check out the man rename page again for details.






                share|improve this answer

























                  0












                  0








                  0







                  mv simply changes the name of the file (it can also move it to another filesystem or path). You give it an old name and a new name, and it changes the file to the new name or location. rename is used to make bulk naming changes. Say you had a thousand files, foo000.log through foo999.log and you wanted to change them to bar000.log through bar999.log. With mv you'd have to do mv foo000.log bar000.log, mv foo001 bar001.log, etc. or else write a script. With rename you simply do rename foo bar foo*.log, and voila, a thousand files are changed in an instant! Pretty cool. Check out the man rename page again for details.






                  share|improve this answer













                  mv simply changes the name of the file (it can also move it to another filesystem or path). You give it an old name and a new name, and it changes the file to the new name or location. rename is used to make bulk naming changes. Say you had a thousand files, foo000.log through foo999.log and you wanted to change them to bar000.log through bar999.log. With mv you'd have to do mv foo000.log bar000.log, mv foo001 bar001.log, etc. or else write a script. With rename you simply do rename foo bar foo*.log, and voila, a thousand files are changed in an instant! Pretty cool. Check out the man rename page again for details.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered 1 hour ago









                  eewancoeewanco

                  300212




                  300212





















                      -1














                      mv moves or renames files and directories and will back them up; rename just renames files.



                      mv has more capabilities and options. Look at the switches in the man pages for each to see the differences in capabilities. Let's take a look using man in Ubuntu 18.04LTS (your mileage may vary depending on the version of each package):



                      mv options (omitting help and version)



                       --backup[=CONTROL] 
                      make a backup of each existing destination file

                      -b like --backup but does not accept an argument

                      -f, --force
                      do not prompt before overwriting

                      -i, --interactive
                      prompt before overwrite

                      -n, --no-clobber
                      do not overwrite an existing file

                      If you specify more than one of -i, -f, -n, only the final one takes effect.

                      --strip-trailing-slashes
                      remove any trailing slashes from each SOURCE argument

                      -S, --suffix=SUFFIX
                      override the usual backup suffix

                      -t, --target-directory=DIRECTORY
                      move all SOURCE arguments into DIRECTORY

                      -T, --no-target-directory
                      treat DEST as a normal file

                      -u, --update
                      move only when the SOURCE file is newer than the destination file or when the destination file is missing

                      -v, --verbose
                      explain what is being done

                      -Z, --context
                      set SELinux security context of destination file to default type


                      rename options (omitting help and version)



                       -s, --symlink 
                      Do not rename a symlink but its target.

                      -v, --verbose
                      Show which files where renamed, if any.

                      -n, --no-act
                      Do not make any changes.

                      -o, --no-overwrite
                      Do not overwrite existing files.





                      share|improve this answer




















                      • 3





                        Define 'more powerful'. Does mv support regex like rename ?

                        – Gilles Quenot
                        3 hours ago












                      • As the questioner stated, no.

                        – K7AAY
                        3 hours ago






                      • 1





                        Wow, what an argument

                        – Gilles Quenot
                        2 hours ago











                      • Giving credit where credit is due.

                        – K7AAY
                        2 hours ago















                      -1














                      mv moves or renames files and directories and will back them up; rename just renames files.



                      mv has more capabilities and options. Look at the switches in the man pages for each to see the differences in capabilities. Let's take a look using man in Ubuntu 18.04LTS (your mileage may vary depending on the version of each package):



                      mv options (omitting help and version)



                       --backup[=CONTROL] 
                      make a backup of each existing destination file

                      -b like --backup but does not accept an argument

                      -f, --force
                      do not prompt before overwriting

                      -i, --interactive
                      prompt before overwrite

                      -n, --no-clobber
                      do not overwrite an existing file

                      If you specify more than one of -i, -f, -n, only the final one takes effect.

                      --strip-trailing-slashes
                      remove any trailing slashes from each SOURCE argument

                      -S, --suffix=SUFFIX
                      override the usual backup suffix

                      -t, --target-directory=DIRECTORY
                      move all SOURCE arguments into DIRECTORY

                      -T, --no-target-directory
                      treat DEST as a normal file

                      -u, --update
                      move only when the SOURCE file is newer than the destination file or when the destination file is missing

                      -v, --verbose
                      explain what is being done

                      -Z, --context
                      set SELinux security context of destination file to default type


                      rename options (omitting help and version)



                       -s, --symlink 
                      Do not rename a symlink but its target.

                      -v, --verbose
                      Show which files where renamed, if any.

                      -n, --no-act
                      Do not make any changes.

                      -o, --no-overwrite
                      Do not overwrite existing files.





                      share|improve this answer




















                      • 3





                        Define 'more powerful'. Does mv support regex like rename ?

                        – Gilles Quenot
                        3 hours ago












                      • As the questioner stated, no.

                        – K7AAY
                        3 hours ago






                      • 1





                        Wow, what an argument

                        – Gilles Quenot
                        2 hours ago











                      • Giving credit where credit is due.

                        – K7AAY
                        2 hours ago













                      -1












                      -1








                      -1







                      mv moves or renames files and directories and will back them up; rename just renames files.



                      mv has more capabilities and options. Look at the switches in the man pages for each to see the differences in capabilities. Let's take a look using man in Ubuntu 18.04LTS (your mileage may vary depending on the version of each package):



                      mv options (omitting help and version)



                       --backup[=CONTROL] 
                      make a backup of each existing destination file

                      -b like --backup but does not accept an argument

                      -f, --force
                      do not prompt before overwriting

                      -i, --interactive
                      prompt before overwrite

                      -n, --no-clobber
                      do not overwrite an existing file

                      If you specify more than one of -i, -f, -n, only the final one takes effect.

                      --strip-trailing-slashes
                      remove any trailing slashes from each SOURCE argument

                      -S, --suffix=SUFFIX
                      override the usual backup suffix

                      -t, --target-directory=DIRECTORY
                      move all SOURCE arguments into DIRECTORY

                      -T, --no-target-directory
                      treat DEST as a normal file

                      -u, --update
                      move only when the SOURCE file is newer than the destination file or when the destination file is missing

                      -v, --verbose
                      explain what is being done

                      -Z, --context
                      set SELinux security context of destination file to default type


                      rename options (omitting help and version)



                       -s, --symlink 
                      Do not rename a symlink but its target.

                      -v, --verbose
                      Show which files where renamed, if any.

                      -n, --no-act
                      Do not make any changes.

                      -o, --no-overwrite
                      Do not overwrite existing files.





                      share|improve this answer















                      mv moves or renames files and directories and will back them up; rename just renames files.



                      mv has more capabilities and options. Look at the switches in the man pages for each to see the differences in capabilities. Let's take a look using man in Ubuntu 18.04LTS (your mileage may vary depending on the version of each package):



                      mv options (omitting help and version)



                       --backup[=CONTROL] 
                      make a backup of each existing destination file

                      -b like --backup but does not accept an argument

                      -f, --force
                      do not prompt before overwriting

                      -i, --interactive
                      prompt before overwrite

                      -n, --no-clobber
                      do not overwrite an existing file

                      If you specify more than one of -i, -f, -n, only the final one takes effect.

                      --strip-trailing-slashes
                      remove any trailing slashes from each SOURCE argument

                      -S, --suffix=SUFFIX
                      override the usual backup suffix

                      -t, --target-directory=DIRECTORY
                      move all SOURCE arguments into DIRECTORY

                      -T, --no-target-directory
                      treat DEST as a normal file

                      -u, --update
                      move only when the SOURCE file is newer than the destination file or when the destination file is missing

                      -v, --verbose
                      explain what is being done

                      -Z, --context
                      set SELinux security context of destination file to default type


                      rename options (omitting help and version)



                       -s, --symlink 
                      Do not rename a symlink but its target.

                      -v, --verbose
                      Show which files where renamed, if any.

                      -n, --no-act
                      Do not make any changes.

                      -o, --no-overwrite
                      Do not overwrite existing files.






                      share|improve this answer














                      share|improve this answer



                      share|improve this answer








                      edited 3 hours ago

























                      answered 3 hours ago









                      K7AAYK7AAY

                      950928




                      950928







                      • 3





                        Define 'more powerful'. Does mv support regex like rename ?

                        – Gilles Quenot
                        3 hours ago












                      • As the questioner stated, no.

                        – K7AAY
                        3 hours ago






                      • 1





                        Wow, what an argument

                        – Gilles Quenot
                        2 hours ago











                      • Giving credit where credit is due.

                        – K7AAY
                        2 hours ago












                      • 3





                        Define 'more powerful'. Does mv support regex like rename ?

                        – Gilles Quenot
                        3 hours ago












                      • As the questioner stated, no.

                        – K7AAY
                        3 hours ago






                      • 1





                        Wow, what an argument

                        – Gilles Quenot
                        2 hours ago











                      • Giving credit where credit is due.

                        – K7AAY
                        2 hours ago







                      3




                      3





                      Define 'more powerful'. Does mv support regex like rename ?

                      – Gilles Quenot
                      3 hours ago






                      Define 'more powerful'. Does mv support regex like rename ?

                      – Gilles Quenot
                      3 hours ago














                      As the questioner stated, no.

                      – K7AAY
                      3 hours ago





                      As the questioner stated, no.

                      – K7AAY
                      3 hours ago




                      1




                      1





                      Wow, what an argument

                      – Gilles Quenot
                      2 hours ago





                      Wow, what an argument

                      – Gilles Quenot
                      2 hours ago













                      Giving credit where credit is due.

                      – K7AAY
                      2 hours ago





                      Giving credit where credit is due.

                      – K7AAY
                      2 hours ago










                      Urda is a new contributor. Be nice, and check out our Code of Conduct.









                      draft saved

                      draft discarded


















                      Urda is a new contributor. Be nice, and check out our Code of Conduct.












                      Urda is a new contributor. Be nice, and check out our Code of Conduct.











                      Urda is a new contributor. Be nice, and check out our Code of Conduct.














                      Thanks for contributing an answer to Unix & Linux Stack Exchange!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid


                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.

                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f510553%2fwhats-the-difference-between-rename-and-mv%23new-answer', 'question_page');

                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      名間水力發電廠 目录 沿革 設施 鄰近設施 註釋 外部連結 导航菜单23°50′10″N 120°42′41″E / 23.83611°N 120.71139°E / 23.83611; 120.7113923°50′10″N 120°42′41″E / 23.83611°N 120.71139°E / 23.83611; 120.71139計畫概要原始内容臺灣第一座BOT 模式開發的水力發電廠-名間水力電廠名間水力發電廠 水利署首件BOT案原始内容《小檔案》名間電廠 首座BOT水力發電廠原始内容名間電廠BOT - 經濟部水利署中區水資源局

                      Prove that NP is closed under karp reduction?Space(n) not closed under Karp reductions - what about NTime(n)?Class P is closed under rotation?Prove or disprove that $NL$ is closed under polynomial many-one reductions$mathbfNC_2$ is closed under log-space reductionOn Karp reductionwhen can I know if a class (complexity) is closed under reduction (cook/karp)Check if class $PSPACE$ is closed under polyonomially space reductionIs NPSPACE also closed under polynomial-time reduction and under log-space reduction?Prove PSPACE is closed under complement?Prove PSPACE is closed under union?

                      Is my guitar’s action too high? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern)Strings too stiff on a recently purchased acoustic guitar | Cort AD880CEIs the action of my guitar really high?Μy little finger is too weak to play guitarWith guitar, how long should I give my fingers to strengthen / callous?When playing a fret the guitar sounds mutedPlaying (Barre) chords up the guitar neckI think my guitar strings are wound too tight and I can't play barre chordsF barre chord on an SG guitarHow to find to the right strings of a barre chord by feel?High action on higher fret on my steel acoustic guitar