Safe Directory Delete

I alias rm to rm -i so that when I mistype file* as file * I get prompted before accidentally deleting files I didn’t intend to delete. Is there an equivalent idiom for directories?

In particular, to delete a directory and its contents, you have to rm -r. Using rm -ri will prompt you for all the files in it, not just the top-level directory. For directories with a lot of files, that’s not convenient. To avoid that, I frequently use rm -rf, but that scares me. I’m only a typo away from blowing away lots of important stuff (e.g. rm -rf ~ /foo instead of rm -rf ~/foo—ouch!).

One could write a mildly annoying script to replace, e.g., rmdir with something that only prompts for the things listed on the command line, but it seems like this is the kind of problem for which a solution should already exist.

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

rm -i would get extremely annoying especially when removing recursively.

rm -I, on the other hand seems a little more tolerable which will prompt once before removing more than three files, or when removing recursively.

It’s much less intrusive while still giving protection against most mistakes.

The best form of protection is to double/triple check when deleting recursively or better yet, anything you delete.

Method 2

You can cd to the top level directory you want to remove recursively, then go up a level and rm that directory. That way you don’t have to use leading slashes, etc.

cd /home/user/junk
ls -1

folders
to
delete

rm -ri . ###Or "rm -rf ."
cd ..
rm -rf junk

Another way to check that your paths are right for any command is to simply use tab completion.

Method 3

One option is to use a trash can approach, like here.
There are a lot of examples out there besides this one – it was just the first in my search results. Basically, all rm operations become mv commands. If you rm the wrong files, they’re still on the machine and easily recoverable. And the approach linked above creates an alias to the base rm command so you can still use it when you really want to.


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x