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

Why doesn't H₄O²⁺ exist?

Alternative to sending password over mail?

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

Why "Having chlorophyll without photosynthesis is actually very dangerous" and "like living with a bomb"?

prove that the matrix A is diagonalizable

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

Why do I get two different answers for this counting problem?

Took a trip to a parallel universe, need help deciphering

Why are electrically insulating heatsinks so rare? Is it just cost?

Why does Arabsat 6A need a Falcon Heavy to launch

In Romance of the Three Kingdoms why do people still use bamboo sticks when papers are already invented?

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

Anagram holiday

Is it inappropriate for a student to attend their mentor's dissertation defense?

A reference to a well-known characterization of scattered compact spaces

Has there ever been an airliner design involving reducing generator load by installing solar panels?

Why is Collection not simply treated as Collection<?>

Is the Joker left-handed?

1960's book about a plague that kills all white people

Brothers & sisters

Is it legal for company to use my work email to pretend I still work there?

Theorems that impeded progress

What to put in ESTA if staying in US for a few days before going on to Canada

UK: Is there precedent for the governments e-petition site changing the direction of a government decision?



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
    7 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
    7 hours ago






  • 4





    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
    7 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
    7 hours ago






  • 3





    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
    7 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
    7 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
    7 hours ago






  • 4





    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
    7 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
    7 hours ago






  • 3





    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
    7 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 5 hours 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 7 hours ago









UrdaUrda

1324




1324




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
    7 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
    7 hours ago






  • 4





    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
    7 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
    7 hours ago






  • 3





    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
    7 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
    7 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
    7 hours ago






  • 4





    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
    7 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
    7 hours ago






  • 3





    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
    7 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
7 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
7 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
7 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
7 hours ago




4




4





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
7 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
7 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
7 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
7 hours ago




3




3





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
7 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
7 hours ago










4 Answers
4






active

oldest

votes


















3














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

























  • Not only 'regular expression' but function if need it

    – Gilles Quenot
    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
    5 hours ago


















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
      6 hours ago












    • As the questioner stated, no.

      – K7AAY
      6 hours ago






    • 1





      Wow, what an argument

      – Gilles Quenot
      6 hours ago











    • Giving credit where credit is due.

      – K7AAY
      6 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









    3














    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

























    • Not only 'regular expression' but function if need it

      – Gilles Quenot
      2 hours ago
















    3














    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

























    • Not only 'regular expression' but function if need it

      – Gilles Quenot
      2 hours ago














    3












    3








    3







    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 4 hours ago









    Kusalananda

    139k17261433




    139k17261433










    answered 4 hours ago









    ilkkachuilkkachu

    63k10103180




    63k10103180












    • Not only 'regular expression' but function if need it

      – Gilles Quenot
      2 hours ago


















    • Not only 'regular expression' but function if need it

      – Gilles Quenot
      2 hours ago

















    Not only 'regular expression' but function if need it

    – Gilles Quenot
    2 hours ago






    Not only 'regular expression' but function if need it

    – Gilles Quenot
    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
      5 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
      5 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 5 hours ago

























    answered 6 hours ago









    Gilles QuenotGilles Quenot

    16.5k14053




    16.5k14053












    • +1 for sprintfing with rename

      – Archemar
      5 hours ago

















    • +1 for sprintfing with rename

      – Archemar
      5 hours ago
















    +1 for sprintfing with rename

    – Archemar
    5 hours ago





    +1 for sprintfing with rename

    – Archemar
    5 hours ago











    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 4 hours 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
              6 hours ago












            • As the questioner stated, no.

              – K7AAY
              6 hours ago






            • 1





              Wow, what an argument

              – Gilles Quenot
              6 hours ago











            • Giving credit where credit is due.

              – K7AAY
              6 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
              6 hours ago












            • As the questioner stated, no.

              – K7AAY
              6 hours ago






            • 1





              Wow, what an argument

              – Gilles Quenot
              6 hours ago











            • Giving credit where credit is due.

              – K7AAY
              6 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 6 hours ago

























            answered 7 hours ago









            K7AAYK7AAY

            952928




            952928







            • 3





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

              – Gilles Quenot
              6 hours ago












            • As the questioner stated, no.

              – K7AAY
              6 hours ago






            • 1





              Wow, what an argument

              – Gilles Quenot
              6 hours ago











            • Giving credit where credit is due.

              – K7AAY
              6 hours ago












            • 3





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

              – Gilles Quenot
              6 hours ago












            • As the questioner stated, no.

              – K7AAY
              6 hours ago






            • 1





              Wow, what an argument

              – Gilles Quenot
              6 hours ago











            • Giving credit where credit is due.

              – K7AAY
              6 hours ago







            3




            3





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

            – Gilles Quenot
            6 hours ago






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

            – Gilles Quenot
            6 hours ago














            As the questioner stated, no.

            – K7AAY
            6 hours ago





            As the questioner stated, no.

            – K7AAY
            6 hours ago




            1




            1





            Wow, what an argument

            – Gilles Quenot
            6 hours ago





            Wow, what an argument

            – Gilles Quenot
            6 hours ago













            Giving credit where credit is due.

            – K7AAY
            6 hours ago





            Giving credit where credit is due.

            – K7AAY
            6 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

            Францішак Багушэвіч Змест Сям'я | Біяграфія | Творчасць | Мова Багушэвіча | Ацэнкі дзейнасці | Цікавыя факты | Спадчына | Выбраная бібліяграфія | Ушанаванне памяці | У філатэліі | Зноскі | Літаратура | Спасылкі | НавігацыяЛяхоўскі У. Рупіўся дзеля Бога і людзей: Жыццёвы шлях Лявона Вітан-Дубейкаўскага // Вольскі і Памідораў з песняй пра немца Адвакат, паэт, народны заступнік Ашмянскі веснікВ Минске появится площадь Богушевича и улица Сырокомли, Белорусская деловая газета, 19 июля 2001 г.Айцец беларускай нацыянальнай ідэі паўстаў у бронзе Сяргей Аляксандравіч Адашкевіч (1918, Мінск). 80-я гады. Бюст «Францішак Багушэвіч».Яўген Мікалаевіч Ціхановіч. «Партрэт Францішка Багушэвіча»Мікола Мікалаевіч Купава. «Партрэт зачынальніка новай беларускай літаратуры Францішка Багушэвіча»Уладзімір Іванавіч Мелехаў. На помніку «Змагарам за родную мову» Барэльеф «Францішак Багушэвіч»Памяць пра Багушэвіча на Віленшчыне Страчаная сталіца. Беларускія шыльды на вуліцах Вільні«Krynica». Ideologia i przywódcy białoruskiego katolicyzmuФранцішак БагушэвічТворы на knihi.comТворы Францішка Багушэвіча на bellib.byСодаль Уладзімір. Францішак Багушэвіч на Лідчыне;Луцкевіч Антон. Жыцьцё і творчасьць Фр. Багушэвіча ў успамінах ягоных сучасьнікаў // Запісы Беларускага Навуковага таварыства. Вільня, 1938. Сшытак 1. С. 16-34.Большая российская1188761710000 0000 5537 633Xn9209310021619551927869394п

            Беларусь Змест Назва Гісторыя Геаграфія Сімволіка Дзяржаўны лад Палітычныя партыі Міжнароднае становішча і знешняя палітыка Адміністрацыйны падзел Насельніцтва Эканоміка Культура і грамадства Сацыяльная сфера Узброеныя сілы Заўвагі Літаратура Спасылкі НавігацыяHGЯOiТоп-2011 г. (па версіі ej.by)Топ-2013 г. (па версіі ej.by)Топ-2016 г. (па версіі ej.by)Топ-2017 г. (па версіі ej.by)Нацыянальны статыстычны камітэт Рэспублікі БеларусьШчыльнасць насельніцтва па краінахhttp://naviny.by/rubrics/society/2011/09/16/ic_articles_116_175144/А. Калечыц, У. Ксяндзоў. Спробы засялення краю неандэртальскім чалавекам.І ў Менску былі мамантыА. Калечыц, У. Ксяндзоў. Старажытны каменны век (палеаліт). Першапачатковае засяленне тэрыторыіГ. Штыхаў. Балты і славяне ў VI—VIII стст.М. Клімаў. Полацкае княства ў IX—XI стст.Г. Штыхаў, В. Ляўко. Палітычная гісторыя Полацкай зямліГ. Штыхаў. Дзяржаўны лад у землях-княствахГ. Штыхаў. Дзяржаўны лад у землях-княствахБеларускія землі ў складзе Вялікага Княства ЛітоўскагаЛюблінская унія 1569 г."The Early Stages of Independence"Zapomniane prawdy25 гадоў таму было аб'яўлена, што Язэп Пілсудскі — беларус (фота)Наша вадаДакументы ЧАЭС: Забруджванне тэрыторыі Беларусі « ЧАЭС Зона адчужэнняСведения о политических партиях, зарегистрированных в Республике Беларусь // Министерство юстиции Республики БеларусьСтатыстычны бюлетэнь „Полаўзроставая структура насельніцтва Рэспублікі Беларусь на 1 студзеня 2012 года і сярэднегадовая колькасць насельніцтва за 2011 год“Индекс человеческого развития Беларуси — не было бы нижеБеларусь занимает первое место в СНГ по индексу развития с учетом гендерного факцёраНацыянальны статыстычны камітэт Рэспублікі БеларусьКанстытуцыя РБ. Артыкул 17Трансфармацыйныя задачы БеларусіВыйсце з крызісу — далейшае рэфармаванне Беларускі рубель — сусветны лідар па дэвальвацыяхПра змену коштаў у кастрычніку 2011 г.Бядней за беларусаў у СНД толькі таджыкіСярэдні заробак у верасні дасягнуў 2,26 мільёна рублёўЭканомікаГаласуем за ТОП-100 беларускай прозыСучасныя беларускія мастакіАрхитектура Беларуси BELARUS.BYА. Каханоўскі. Культура Беларусі ўсярэдзіне XVII—XVIII ст.Анталогія беларускай народнай песні, гуказапісы спеваўБеларускія Музычныя IнструментыБеларускі рок, які мы страцілі. Топ-10 гуртоў«Мясцовы час» — нязгаслая легенда беларускай рок-музыкіСЯРГЕЙ БУДКІН. МЫ НЯ ЗНАЕМ СВАЁЙ МУЗЫКІМ. А. Каладзінскі. НАРОДНЫ ТЭАТРМагнацкія культурныя цэнтрыПублічная дыскусія «Беларуская новая пьеса: без беларускай мовы ці беларуская?»Беларускія драматургі па-ранейшаму лепш ставяцца за мяжой, чым на радзіме«Працэс незалежнага кіно пайшоў, і дзяржаву турбуе яго непадкантрольнасць»Беларускія філосафы ў пошуках прасторыВсе идём в библиотекуАрхіваванаАб Нацыянальнай праграме даследавання і выкарыстання касмічнай прасторы ў мірных мэтах на 2008—2012 гадыУ космас — разам.У суседнім з Барысаўскім раёне пабудуюць Камандна-вымяральны пунктСвяты і абрады беларусаў«Мірныя бульбашы з малой краіны» — 5 непраўдзівых стэрэатыпаў пра БеларусьМ. Раманюк. Беларускае народнае адзеннеУ Беларусі скарачаецца колькасць злачынстваўЛукашэнка незадаволены мінскімі ўладамі Крадзяжы складаюць у Мінску каля 70% злачынстваў Узровень злачыннасці ў Мінскай вобласці — адзін з самых высокіх у краіне Генпракуратура аналізуе стан са злачыннасцю ў Беларусі па каэфіцыенце злачыннасці У Беларусі стабілізавалася крымінагеннае становішча, лічыць генпракурорЗамежнікі сталі здзяйсняць у Беларусі больш злачынстваўМУС Беларусі турбуе рост рэцыдыўнай злачыннасціЯ з ЖЭСа. Дазволіце вас абкрасці! Рэйтынг усіх службаў і падраздзяленняў ГУУС Мінгарвыканкама вырасАб КДБ РБГісторыя Аператыўна-аналітычнага цэнтра РБГісторыя ДКФРТаможняagentura.ruБеларусьBelarus.by — Афіцыйны сайт Рэспублікі БеларусьСайт урада БеларусіRadzima.org — Збор архітэктурных помнікаў, гісторыя Беларусі«Глобус Беларуси»Гербы и флаги БеларусиАсаблівасці каменнага веку на БеларусіА. Калечыц, У. Ксяндзоў. Старажытны каменны век (палеаліт). Першапачатковае засяленне тэрыторыіУ. Ксяндзоў. Сярэдні каменны век (мезаліт). Засяленне краю плямёнамі паляўнічых, рыбакоў і збіральнікаўА. Калечыц, М. Чарняўскі. Плямёны на тэрыторыі Беларусі ў новым каменным веку (неаліце)А. Калечыц, У. Ксяндзоў, М. Чарняўскі. Гаспадарчыя заняткі ў каменным векуЭ. Зайкоўскі. Духоўная культура ў каменным векуАсаблівасці бронзавага веку на БеларусіФарміраванне супольнасцей ранняга перыяду бронзавага векуФотографии БеларусиРоля беларускіх зямель ва ўтварэнні і ўмацаванні ВКЛВ. Фадзеева. З гісторыі развіцця беларускай народнай вышыўкіDMOZGran catalanaБольшая российскаяBritannica (анлайн)Швейцарскі гістарычны15325917611952699xDA123282154079143-90000 0001 2171 2080n9112870100577502ge128882171858027501086026362074122714179пппппп

            ValueError: Expected n_neighbors <= n_samples, but n_samples = 1, n_neighbors = 6 (SMOTE) The 2019 Stack Overflow Developer Survey Results Are InCan SMOTE be applied over sequence of words (sentences)?ValueError when doing validation with random forestsSMOTE and multi class oversamplingLogic behind SMOTE-NC?ValueError: Error when checking target: expected dense_1 to have shape (7,) but got array with shape (1,)SmoteBoost: Should SMOTE be ran individually for each iteration/tree in the boosting?solving multi-class imbalance classification using smote and OSSUsing SMOTE for Synthetic Data generation to improve performance on unbalanced dataproblem of entry format for a simple model in KerasSVM SMOTE fit_resample() function runs forever with no result