I made a mistake when moving a set of file by this command mv src/* .. instead of mv src/* .


You can try using find to discover which files in ".." was modified at the time you made the erroneous mv, and then mv them in the right place again (using -exec find option for example).

  • Thanks for your suggestion ! I use this command find ../* -mmin -5 -type f -exec mv '{}' . ; I saw that it mv all the file in parent directory include file're not modified. Do you have any ideas for this command ?
    – billyduc
    Sep 10 '09 at 2:57

You cannot 'undo' it easily other than by sorting out which files belong where and to move them back again. Alternatively, you could restore from a backup and then compare the files from the backup and the present system to help.


I don't think there's any. Same goes with rm, which is different from trashing.

  • Hey, it's not exactly true that there's nothing you can do to get a rm or mv-ed file back. The (negentropic) bits are still there, arranged in the right sequence. Kust the pointer in the file allocation table is gone. It's not impossible but it is difficult to find the bits and put the pointer back. Aug 28 '12 at 23:42

This happened to me today! but you need not panic. suppose "file.txt" is your file name.

  1. in linux command prompt, go to the directory from where you moved the file "file.txt" (using cd directory_name)
  2. type ls -a (lists all files & sub directories including hidden files and directories)
  3. you will see that a copy of the file that you moved was saved as "file.txt~"
  4. now execute mv file.txt~ file.txt in command prompt. (this will move the automatically saved copy of your file back to your file)

That's it! you're good to go!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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