就在刚才,我习惯性的rm -rf
,删掉了 32mb.cn 的数据库(sqlite),欲哭无泪啊!以前我还经常在酷安评论开玩笑:推荐一个优化命令su -c "rm -rf /system
,这回终于轮到我自己了。尼玛为虾米不是移动到回收站涅!!!好像 UI 里是有trashbox的,但是操作 Linux 一般都是在控制台,而且 32MB 的 VPS 开不起界面啊。
一、把删除操作替换为移动文件到指定目录
sudo vim /usr/local/bin/trash-rm
来自:http://blog.csdn.net/xluren/article/details/17340021 文件内容#!/bin/bash trash_dir="~/.trash" date=`date "+%Y%m%d"` mkdir -p ${trash_dir}/${date} for i in $* do suffix=`date "+%H%M%S"` if [ ! -d "${i}" ]&&[ ! -f "${i}" ] then echo "[${i}] do not exist" else file_name=`basename $i` mv $i ${trash_dir}/${date}/${file_name}_${suffix}_${RANDOM} echo "[${i}] delete completed" fi done
很简单的一段代码,在trash里面建立了以日期命名的文件夹,然后会把删除的文件重命名移到日期命名的文件夹,为了保证名字不重复,在后面又追了一个随机变量,再重复的概率会很小了吧。 2. 赋予执行权限
sudo chmod +x /usr/local/bin/trash-rm
3. 添加alias覆盖rm命令vim ~/.bashrc
,在最后添加一行rm=trash-rm
执行bash刷新即可
二、使用 trash-cli 增加回收站功能
来自:http://www.webupd8.org/2010/02/make-rm-move-files-to-trash-instead-of.html
sudo apt-get install trash-cli
添加回收站功能sudo vim /usr/local/bin/trash-rm
文件内容#!/bin/bash # command name: trash-rm shopt -s extglob recursive=1 declare -a cmd ((i = 0)) for f in "$@" do case "$f" in (-*([fiIv])r*([fiIv])|-*([fiIv])R*([fiIv])) tmp="${f//[rR]/}" if [ -n "$tmp" ] then #echo "\$tmp == $tmp" cmd[$i]="$tmp" ((i++)) fi recursive=0 ;; (--recursive) recursive=0 ;; (*) if [ $recursive != 0 -a -d "$f" ] then echo "skipping directory: $f" continue else cmd[$i]="$f" ((i++)) fi ;; esac done trash "${cmd[@]}"
如果发现不能操作文件夹请把最后一行的trash换成trash-put 3. 赋予执行权限
sudo chmod +x /usr/local/bin/trash-rm
4. 添加alias覆盖rm命令vim ~/.bashrc
,在最后添加一行rm=trash-rm
执行bash刷新即可
附录
trash-cli命令概览:
- trash-put 将文件或目录移入回收站
- trash-empty 清空回收站
- trash-list 列出回收站中的文件
- restore-trash 还原回收站中的文件
- trash-rm 删除回首站中的单个文件
找這功能很久了,上次手殘看錯 vps 機台名稱,誤砍資料夾結果弄半天救不回來......
哈哈哈哈哈
来个板凳先
5555