Linux防止误删文件rm命令删除文件到回收站

悟透 / 2023-05-19 / 原文

全局配置:/etc/profile

当前用户:~/.bashrc

 

一、配置:

方式一:

1.建立一个存放 rm 后的目录: 

sudo mkdir /Recycle_Bin

  注意:目录名、目录路径都可以随意,就是注意目录所在磁盘的空间即可

 

2. 根据需要 全局配置 或 局部配置  里,添加 rm  删除文件到回收站

alias rm='mv -t /Recycle_Bin

注意点:

当删除文件和 /Recycle_Bin  里重名时,会被覆盖。

同名文件夹 则会提示 ”mv: 无法将'output' 移动至'/Recycle_Bin/output': 目录非空

 要先删除 /Recycle_Bin 里的同名文件夹,才能继续删除同名文件夹。

适合有些特殊需要的人,想保留一份内容的人使用。

 

方式二:(推荐来源

 

# 修改rm命令将文件删除至回收站
trash(){
    del_date=`date +%Y%m%d%H%M%S`
    # 循环是因为可能rm多个文件
    for arg in "$@"
    do
       # 这里将删除时间加入到文件名后是因为mv命令不能覆盖非空目录以及不能使用文件覆盖文件夹
       # 加上时间就不会有同名的文件了
       mv $arg ~/.local/share/Trash/files/$arg-${del_date}
    done
}

alias rm=trash
alias rl='ls ~/.local/share/Trash/files/'

 

  注意:

    当你的 系统安装了桌面版, ~/.local/share/Trash/files/  路径,就是你桌面上的回收站,

  在命令行 rm 删除的文件,可以在 桌面上回收站里看到。

 

 

二、生效:必须要做

已经登录终端的,可以用 source ~/.bashrc 或  . ~/.bashrc 生效(命令二选一),或者 重新登录终端生效

 

三、使用

注意: 之后用 rm 删除文件(文件夹)不需要添加 -rf 参数 

 

-