In fedora, files are always accidentally deleted, so the following script moves the file deletion to its recycle bin by default. Function: the script deletes files or directories ~ /Waste/(defined by yourself ). If the script contains a file name or directory name, it means "delete" by default and is moved to the recycle bin. Parameter-l indicates listing the content of the recycle bin. If no parameter is provided, all content is listed. You can specify a file or directory. -D indicates that the recycle bin is cleared. If the parameter is left blank, you can delete a file or directory. The script execution permission is root. First, create a recycle bin www.2cto.com $ mkdir ~ with the root permission ~ /Waste is the script content [plain] #! /Bin/bash arg_del_flag = 0 # Delete flag. The arg_list_flag = 0 # list flag is not deleted by default, by default, do not list Waste_Path = "/root/waste/" if [$ #-lt 1]; then echo "usage: $0-[l | d] [filename] "exit 1 fi file_num = 0 for param in $ @ do case $ param in"-d ") arg_del_flag = 1 # Delete continue; "-l") arg_list_flag = 1 # list continue; "-" *) echo "unknow \" $ param \ "" echo "usage: $0-[l | d] [filename] "continue; *) file [$ file_num] =" $ param "# file name let File_num ++; esac www.2cto.com done I = 0 if [$ arg_del_flag-eq 1]; then cd $ {Waste_Path} if [$ #-eq 1]; then # Delete All rm-rf $ {Waste_Path} * exit 0 fi while [$ I-lt $ file_num] do if [-f $ {file [$ I]}]; then # For a common file rm-f $ {Waste_Path }$ {file [$ I]} elif [-d $ {file [$ I]}]; then # For the rm-rf $ {Waste_Path }$ {file [$ I]} else echo "$ {file [$ I]} is not existed" fi let I ++ done exit 0 fi if [$ arg_list_flag -Eq 1]; then cd $ {Waste_Path} if [$ #-eq 1]; then # list all ls-l $ {Waste_Path} exit 0 fi www.2cto.com while [$ I-lt $ file_num] do if [-s $ {file [$ I]}]; then # whether the object exists-s indicates that the object has a stolen length greater than 0, return ls-l $ {Waste_Path }$ {file [$ I]} else echo "$ {file [$ I]} is not existed" fi let I ++ done exit 0 fi # The-l or-d option does not exist, delete the file while [$ I-lt $ file_num] do if [-f $ {file [$ I]}-o-d $ {file [$ I]}]; then # ensure that the file has a mv $ {file [$ I] }$ {Waste_Path} if [$? = 0]; then echo "$ {file [$ I]} deleted successfully" fi else echo "$ {file [$ I]} is not existed" fi www.2cto.com let I ++ done exit 0 modify the script execution permission, then add it to the system environment variable! The above script also has a small bug, that is, when I enter the recycle bin to determine whether a file exists, I use the-s option. If the file exists and the length is greater than 0, a success is returned. I lost the empty file to the recycle bin when I wrote the script test yesterday. All of the files have been closed for a long time. Hope you can give me more advice! From firefoxbug's column