rm 一删就找不回来了,请问有没有类似的命令,起鼠标右键删除到回收站的作用?
可以试试这样,先创建一个文件夹.trash 在~/ 里,然后~/.bashrc 中添加
alias rm=trash
trash()
{
mv $@ ~/.trash
}
意思是将 rm 命令用 mv 命令来代替,使用 rm 后文件会移动到~/.trash 文件夹里。
谢谢,我试试
把这个保存成 trash.sh
#!/bin/sh
# mv the file
mv $1 /home/$LOGNAME/.local/share/Trash/files/
# prepare the info file for KDE
SHORT_NAME=$(echo "$1" | sed "s/.*///")
PATH_LEVEL=`dirname $1`
pushd $PATH_LEVEL/ &>/dev/null
echo "[Trash Info]" > /home/$LOGNAME/.local/share/Trash/info/$SHORT_NAME.trashinfo
echo "Path=`pwd`/$SHORT_NAME" >> /home/$LOGNAME/.local/share/Trash/info/$SHORT_NAME.trashinfo
echo "DeletionDate=`date +20%y-%m-%dT%H:%M:%S`" >> /home/$LOGNAME/.local/share/Trash/info/$SHORT_NAME.trashinfo
popd &>/dev/null
然后把 trash.sh 移动到 /usr/bin/trash
sudo mv trash.sh /usr/bin/trash
以后就可以:
trash book.opensuse.startup_zh_CN.alpha2.pdf
移动到回收站了。而且可以在 KDE 的回收站里面正常看到那个文件。
注:
-
不适合 root 当桌面的用户。
-
这个命令即使你用 su 之后执行,也是移动文件到你普通用户的回收站(因为回收给 root 你看不到,过两天就忘记了),造成的结果就是你在 KDE 清空回收站时清不掉的文件就是原来归 root 所有的文件。需要你手动清理
sudo rm .local/share/Trash/files/%{name}
sudo rm .local/share/Trash/info/%{name}.trashinfo
我在想那样改了 rm 命令不是没用了,以后要彻底删除怎么办?另外,回收站的位置貌似是~/.local/share/Trash/files 没有找到~/.trash 这个文件。
如果我没理解错你的命令的话。。。
这个如果文件夹中名字中含有. 可能出问题吧~
先学好正则行嘛?你没看见我测试文件名字叫:book.openSUSE.startup_zh_CN.alpha2.pdf
在 2l 那个方案里有说要先创建.trash 文件夹,没有将文件移至实际的回收站里(比较复杂,4l 有参考方案)
以后要删除文件可以进入该文件夹,然后使用
sudo rm *
就是使用删除 rm 的命令了。
谢谢 laper 和 marguerite 。按照 4L 来了,很方便嘿嘿!回收站里也看得见。
用这 trash-cli 吧!
trash-put trashes files and directories.
trash-empty empty the trashcan(s).
trash-list list trashed file.
restore-trash restore a trashed file.
trash-rm remove individual files from trash can.