红联Linux门户
Linux帮助

将rm命令重定义为移动到回收站

发布时间:2016-12-04 11:32:05来源:linux网站作者:Designer_DRK
在Linux中不小心用rm命令删掉了重要文件简直太蛋疼了,以下是将rm命令重定义为移动到回收站的方法:
 
在用户文件夹username下新建脚本remove.sh:
 
#!/bin/bash
TRASH="/home/username/.local/share/Trash"
TRASH_FILES="$TRASH/files"
TRASH_INFO="$TRASH/info"
for i in $*; do
#忽略参数
TEMP=$i
TEST=${TEMP:0:1}
if [ $TEST == "-" ];then
continue
fi
#创建trashinfo文件
FileName=`basename $i`  
echo "[Trash Info]" > "$TRASH_INFO/$FileName.trashinfo"  
DPATH=`realpath $i`  
echo "Path=$DPATH" >> "$TRASH_INFO/$FileName.trashinfo"  
DDATE=`date +"%G-%m-%dT%T"`  
echo "DeletionDate=$DDATE" >> "$TRASH_INFO/$FileName.trashinfo"  
#将文件或文件夹移动到回收站  
mv $i $TRASH_FILES/$fileName  
done
 
在ubuntu16.04中,回收站的路径为 /home/username/.local/share/Trash/files,并且在/home/username/.local/share/Trash/info下存储被删文件的信息。
 
然后在 /home/username/.bashrc 中增加两条命令 alias rm="bash /home/free/remove.sh" alias sudo="sudo " 第一句是让我们自建的remove.sh代替rm命令,第二句是让这个替换关系在sudo时依然有效。
 
最后source ~/.bashrc就可以使之生效了(此脚本可以自动忽略rm的各种参数),删除和恢复都轻而易举。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/26571.html