rm

相信很多使用Linux的同学都有过使用rm手滑误删数据的遭遇,我也就把写了半个月的代码误删了而已…….,其实网络上已经有很多方法来修改rm命令,用过在.bashrc中修改rm的方法,也用过别人写好的Python包trash-cli,由于种种原因,最后都使用的不是很友好。最终决定自己写shell来修改rm命令,原因是简单、代码量少、可控性高(这个是重点)。废话不多说,代码和注释如下:

# 在当前用户的home(最好在opt)目录下创建.trash目录(回收站),编辑.bashrc, 追加以下代码.
TRASH_DIR=/home/yxx/.trash          # 设置回收站目录路径
alias rm=trash                      # 将rm命令用trash来实现
alias list_trash='ls ${TRASH_DIR}'  # 显示回收站中的文件
trash()                             # 移动文件到回收站TRASH_DIR目录
{
    for file_path in $@;
    do
        # 利用IFS分割Unix风格的文件路径
        OLD_IFS="$IFS"                                                                                             
        IFS="/"
        array=($file_path)
        IFS="$OLD_IFS"

        # 在分割出的字符串数组中获取文件名(注意冒号后有空格)       
        file_name=${array[@]: -1}

        # 删除文件(将当前时间作为后缀,方便误删后恢复,也防止回收站中不允许同名文件存在)
        mv ${file_path} ${TRASH_DIR}/${file_name}.`date +%Y%m%d-%H:%M:%S`
    done
}
clear_trash()                   # 清空回收站TRASH_DIR目录下的所有文件
{
    read -p "clear sure?[n]" confirm
    [ $confirm == 'y' ] || [ $confirm == 'Y' ]  && /bin/rm -rf ${TRASH_DIR}/*
}

 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

   修改完后使用source ~/.bashrc 使上面的修改生效。现在使用rm命令删除目录和文件时如下:

# 删除文件/目录(rm的本质是mv,所以不需要-rf参数)
rm file_name
rm dir_name
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值