First, I want to explain, the rm
command is a useful but danger command. On the one hand, the command is very brief, on the other hand, when we use the system, it is inevitable to release space and delete unnecessary old files.
If you use rm
to delete files, if you accidentally delete the files by mistake, you may only be able to quickly restore them with Inode, BUT THIS IS OFTEN NOTE SAVED.
What I want to introduce today is a command trash
that can be instead of rm
.
What is trash
?
Simply to put, almost all of system have a specific rule that can store the files we delete into a temporary space.
Such as Windows, there is a trash we can restore the files we deleting.
Generally, we use the del
key to delete files in the desktop environment, and the files will automatically move to the bottom of Trash. When we are sure that we don't really want this file, we enter Trash to delete it completely.
The operation flow of the trash
command is the same. Files deleted using this command will not disappear completely, but temporarily moved to the bottom of Trash, which can be restored or deleted at any time. In this way, the problem of rm
deleting files by mistake is avoided.
Several commands of trash
Before we using trash
command, we need to install it first.
sudo apt install trash-cli
1. Use trash-list
to check whether there are any deleted files in Trash
trash-list
But at the beginning, if there is no file, no information will be displayed here.
2. Use trash
to delete files
Suppose I have two files that I want to delete, called 01.txt and 02.txt.
trash 01.txt 02.txt
Use a space to separate the two files, you can see that these two files are no longer under the current folder. At this time, use trash-list
to confirm that the file is under Trash, and you should see information like this:
2020-08-04 20:38:40 /home/clay/02.txt
2020-08-04 20:38:40 /home/clay/01.txt
Record the time of deletion and the file path before deletion.
3. Use restore-trash
to restore files
If you want to restore the files in Trash, you can enter:
restore-trash
Output:
restore-trash
0 2020-08-04 20:38:40 /home/clay/02.txt
1 2020-08-04 20:38:40 /home/clay/01.txt
What file to restore [0..1]:
Suppose you want to restore 02.txt, then you have to enter its number 0.
This is a little troublesome when restoring a large number of files… In fact, it can be copied directly from the path of ~/.local/share/Trash/files/
with the cp
command. It is recommended not to use the mv
command to move directly, or to cause confusion in the subsequent trash
command.
4. Fourth, use trash-empty to empty all files in Trash
It's very simple, use directly:
trash-empty
All files under Trash will be deleted. However, just like the rm
command, you must first make sure that there are all unnecessary files.
In the end, I think even if there are more insurance steps, the possibility of accidentally deleting the mistake will always be there. The most important thing is that users must carefully confirm the instructions they have given. This is the way to cure the root cause.
References
- https://github.com/andreafrancia/trash-cli
- https://unix.stackexchange.com/questions/42757/make-rm-move-to-trash/42775
- https://www.tecmint.com/trash-cli-manage-linux-trash-from-command-line/
- https://www.2daygeek.com/trash-cli-command-line-trashcan-linux-system/