Today’s article is one I don’t expect most folks to follow, but it’ll be a fun way to make the rm command even safer. If this article sounds familiar, then you remember a recent article. Well, this article takes it a step further and we’re making the rm command even safer!
See, in the last article you learned how to:
Let’s Make The rm Command A Little Safer
Despite the naysayers not seeing the value, that article will help you make the rm command a little safer. It adds a sanity check. If you followed the directions, you’d get the chance to tell the rm command to ‘never mind’ and to ignore your command prompt. This can stop you from removing files accidentally.
While I wrote that article, I already had this one planned, but didn’t want to publish the two back-to-back. I try to mix things up a little.
NOTE: If you followed the directions in the first article and decide you’d rather go this route, you’ll have to undo the actions you took. These two things can not work together at the same time. It’s a one or the other kind of thing.
What will we be doing in this article?
Well, simply put, we’re going to use an alias like we did in the previous article about making the rm command safer – except we’re also going to define a function and alias the rm command to that function instead.
What will that function do? Well, in short, it will take the results of the rm command and stick the files in your trash (recycle) bin. It makes the rm command work similarly to your regular delete (depending on the distro). Instead of deleting files, it happily sends them to the trash bin instead. So, if you screw up you can restore the files nice and easily with your GUI (by going into the trash bin and restoring the files, of course).
This is a bit more complicated. That’s why I went with the previous rm command modifications earlier. This still isn’t all that complicated. I realize this is something new to most of my readers, so I’ll make it as clear as humanly possible. (Wish me luck!)
In the previous article, we made the rm command a little safer. This time around, we’re going to try to …
Make The rm Command Even Safer:
Yes, you’ll need an open terminal. You can likely press
These directions will assume you’re using Nano. If you are not using Nano, please adjust the directions to suit your text editor of choice.
With your terminal open, I want you to enter the following command:
1 | nano ~/.bashrc |
Then, and this may be confusing, I want you to copy and paste all of the following text at the very bottom of that file:
1 2 3 4 5 6 7 | #rm to trash function rm_to_trash () { mv "$@" ~/.local/share/Trash/files } #rm alias alias rm='rm_to_trash' |
Next, you need to save the file. As we’re using Nano, you save the file by pressing
Next, you need to tell your system to reload the ~/.bashrc file. You can log out and back in, you can close all the terminals and open a new one, or you can simply type the following:
1 | . ~/.bashrc |
NOTE: In the second code block you’ll see ~/.local/share/Trash/files
. This should be the correct path to your trash bin. You should verify this and change the path accordingly. This directory ONLY exists if you’ve previously moved something to the trash. You’ll need to create a file and move it to the trash or you’ll have to make the directory manually.
Testing This New rm Command:
Leave your terminal open and open your GUI file editor. With your GUI file editor open, navigate to ~/.local/share/Trash/files
. You may not see it by default, so change your GUI file manager’s options to show hidden files and directories. (You can often use
Now that you’ve navigated to the directory with your GUI file manager, return to your terminal emulator. Once there, type the following:
1 | touch foo.txt |
You can then run ls
to ensure the file foo.txt
exists. Next, you’re going to delete it with the rm command:
1 | rm foo.txt |
Again, you can then run ls
to ensure the foo.txt
file has disappeared. It should certainly be gone from the directory you were in and removed by the rm command.
Except, it wasn’t!
Go back to your GUI file manager and (you might need to refresh it, depending on the file manager) check the list of files. Sure enough, you should see a foo.txt
in the trash bin. It’ll remain there until you restore it or until you empty the trash.
Pretty neat, huh?
Closure:
The first article made the rm command safer. This article will help you make the rm command even safer! You can’t do both (easily), but you can do one or the other. I mean, I’m sure it’s possible but I’ve never thought of a way to do so. I haven’t tried to think of a way to do so. So, there’s that…
If you follow this article, your rm command will send the files deleted by rm to the trash bin. If you follow the first article, you get the chance to view your command’s outcome and decide to back out of the file removal process. You can pick whichever one works best for you.
You can also completely ignore these things and just keep on doing what you have been doing. This being Linux, you can make all sorts of choices – including this one. Though, I think it was Rush who said, “If you choose not to decide you still have made a choice.”
Thanks for reading! If you want to help, or if the site has helped you, you can donate, register to help, write an article, or buy inexpensive hosting to start your site. If you scroll down, you can sign up for the newsletter, vote for the article, and comment.