rm -rf xx
自定义回收站
命令:
myrm(){ D=/tmp/D; mv "D && echo "moved to $D ok"; }
说明:
myrm()
{
D=/tmp/$(date +%Y%m%d%H%M%S);
在/tmp文件夹中创建名为“当前日期”的文件;
其中“date+%Y%m%d%H%M%S”是规定了日期的输出格式;
mkdir -p $D;
以变量D中的路径创建文件夹。
mv "D && echo "moved to $D ok";
将所要删除的文件移入变量D中的文件夹内,移入成功后,输出移动成功。
}
alias rm='myrm'
命令别名定义方式,此定义成功后,无论输入rm或myrm系统都会做出相同操作。
输出:
hc@hc-virtual-machine:/tmp(date +%Y%m%d%H%M%S); mkdir -p @" D ok"; }
hc@hc-virtual-machine:/tmp$ alias rm='myrm'
hc@hc-virtual-machine:/tmp$ touch {1..4}.log
hc@hc-virtual-machine:/tmp rm [1234].log
moved to /tmp/20181026111028 ok
hc@hc-virtual-machine:/tmp cd 20181026111028/
hc@hc-virtual-machine:/tmp/20181026111028$ ls
1.log 2.log 3.log 4.log
说明:
上面的操作过程模拟了回收站的效果,即删除文件的时候只是把文件放到一个临时目录中,这样在需要的时候还可以恢复过来。
由于我们当前已将rm绑定为myrm,所以我们无法执行删除操作
临时设置rm命令别名为myrm
alias rm='myrm'
此时若想删除回收站里的文件,
由于是临时的,所以换一个命令行窗口后,绑定就会失效
即换一个命令行窗口执行rm -r 命令删除即可
如果不想换命令行窗口,可以用sudo rm -rf 目录名 删除回收站的文件
或者解除临时绑定
unalias rm
输出:
hc@hc-virtual-machine:/tmp/20181026111444([ (history|tail -n1|sed -e '''s/^\s[0-9]+\s//;s/[;&|]\salert unalias rm
hc@hc-virtual-machine:/tmp/20181026111444([ (history|tail -n1|sed -e '''s/^\s[0-9]+\s//;s/[;&|]\salert$//''')"'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'