49

Possible Duplicate:
undo Linux's rm?

is it possible to undo a rm somefile command in linux?

and if so, how does one do that?

2
  • 4
    The classic beginner's trap.
    – thosewhatnots
    Nov 16, 2010 at 14:00
  • 1
    What is you OS? FS?
    – osgx
    Nov 16, 2010 at 14:10

3 Answers 3

43

rm doesn't move the file to some trash directory, it deletes it. Thus you cannot, in normal ways.

You could try with some tool to find removed files on the filesystem. If you want to try I suggest you to immediately unmount your filesystem and not mount it (in readwrite) until you found back your files or until you give up.

If you're scared of removing files, you should replace your rm command with another one that asks confirmation before permanently remove files. You can use an alias to this purpose:

alias rm="rm -i"
2
  • 22
    Or replace it with a command that moves them to a .trash folder instead of deleting them.
    – gkrogers
    Nov 16, 2010 at 16:46
  • The hint is good, but this not really answers how "to undo a rm somefile". More info about "some tool to find removed files on the filesystem" would improve this answer alot. Just some honorable mentions: foremost and testdisk
    – Cadoiz
    Oct 6, 2022 at 9:28
20

Not normally, no - it's been deleted, and there isn't normally an undelete comand. It's for that reason that the very first thing that my first Software Engineering professor told the class to do was to redefine the rm command to mv (move) the file(s) to a .trash folder.

1
  • For this, you could also use something like trash-cli.
    – Cadoiz
    Oct 6, 2022 at 7:33
8

Here is a good article (Archive). The original link is deprecated.

Quoting:

The most frequently quoted passage comes from the ext3 FAQ itself:

Q: How can I recover (undelete) deleted files from my ext3 partition?

Actually, you can't! This is what one of the developers, Andreas Dilger, said about it:

In order to ensure that ext3 can safely resume an unlink after a crash, it actually zeros out the block pointers in the inode, whereas ext2 just marks these blocks as unused in the block bitmaps and marks the inode as "deleted" and leaves the block pointers alone.

Your only hope is to "grep" for parts of your files that have been deleted and hope for the best.

2
  • That would be interesting to grep the filesystem device for parts of the file. Might actually work, at least in part.
    – David
    Nov 16, 2010 at 14:05
  • @David, the article linked is about ext3grep
    – osgx
    Nov 16, 2010 at 14:10

Not the answer you're looking for? Browse other questions tagged .