第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > Linux/Ubuntu: 使用 trash-cli 防止 rm 命令误删除重要文件

Linux/Ubuntu: 使用 trash-cli 防止 rm 命令误删除重要文件

时间:2023-07-30 12:59:09

相关推荐

Linux/Ubuntu: 使用 trash-cli 防止 rm 命令误删除重要文件

曾几何时,一条rm -rf /useless /*命令干掉了我们需要的文件,也干掉的整个系统,

这是是不是与哭无泪啊。

像这种使用rm命令误删除文件的情况,我们会注意,但是我们不能保证百分百的不会

出现这种情况,毕竟事情总有偶然,那么对于这种情况我们是不是就束缚无策呢,不!我们有相应

的解决办法,那就是使用 trash-cli。trash-cli是一个使用 python 开发的软件包,包含trash-put

restore-trashtrash-listtrash-emptytrash-rm等命令,我们可以通过这写命令,将文件移动到回收站,或者还原删除了的文件。

trash-put命令会把我们想要删除的文件移动到 ~/.local/share/Trash/files 中,相关信息记录在

~/.local/share/Trash/info 中。

现在我们来安装 trash-cli

加入我们使用 CentOS,Fedora,Ubuntu等主流操作系统,我们可以直接使用软件包管理命令安装如

sudo yum install -y trash-clisudo apt-get install -y trash-cli

对于其他系统,或者是我们想亲自动手安装最新的 trash-cli我们可以通过一下步骤安装:

我们可以在一下地址找到 trash-cli

/andreafrancia/trash-cli

我们使用 git 克隆出来,或者直接下载压缩包,我们这里直接下载,文件存为 trash-cli-master.tar.gz

tar xf trash-cli-master.tar.gzcd trash-cli-mastersudo python setup.py install

因为和rm命令接口是兼容的,所以,可以使用trash-put代替rm

trash-cli 在删除文件时会记录文件的原始路径、删除时间和文件权限,并且兼容

GNOME和 KDE的 trash实现。同时也实现了 Trash Specification

也支持除 home文件系统意外的其他文件系统和文件分区以及移动设备分区

安装完毕之后我们可以通过一些配置,用它替代rm命令

我们在 ~/.bashrc 文件中间加入

alias rm=”trush-put”

命令概览:

trash-put//将文件或目录移入回收站 trash-empty //清空回收站trash-list // 列出回收站中的文件restore-trash//还原回收站中的文件trash-rm// 删除回首站中的单个文件

Usage

Trash a file:

$ trash-put foo

List trashed files:

$ trash-list-06-01 10:30:48 /home/andrea/bar-06-02 21:50:41 /home/andrea/bar-06-23 21:50:49 /home/andrea/foo

Search for a file in the trashcan:

$ trash-list | grep foo-08-30 12:36:00 /home/andrea/foo-08-30 12:39:41 /home/andrea/foo

Restore a trashed file:

$ trash-restore0 -08-30 12:36:00 /home/andrea/foo1 -08-30 12:39:41 /home/andrea/bar2 -08-30 12:39:41 /home/andrea/bar23 -08-30 12:39:41 /home/andrea/foo24 -08-30 12:39:41 /home/andrea/fooWhat file to restore [0..4]: 4$ ls foofoo

Remove all files from the trashcan:

$ trash-empty

Remove only the files that have been deleted before <days> ago:

$ trash-empty <days>

Example:

$ dateTue Feb 19 20:26:52 CET $ trash-list-02-19 20:11:34 /home/einar/today-02-18 20:11:34 /home/einar/yesterday-02-10 20:11:34 /home/einar/last_week$ trash-empty 7$ trash-list-02-19 20:11:34 /home/einar/today-02-18 20:11:34 /home/einar/yesterday$ trash-empty 1$ trash-list-02-19 20:11:34 /home/einar/today

To remove only files matching a pattern:

$ trash-rm \*.o

Note: you need to use quotes in order to protect pattern from shell expansion.

Can I alias rm to trash-put?

You can but you shouldn't. In the early days I thought it was good idea do that but now I changed my mind.

The interface of trash-put seems to be compatible with rm it has a different semantic that will cause you problems. For example, while rm requires -R for deleting directories trash-put does not.

替换命令

为了安全着想,我们先将rm命令替换为trash

vim /etc/bashrc

添加以下内容,替换系统删除命令。

根据作者的README文件,建议还是轻易不要把rm做替换,下面的替换作废。

alias log='cd /var/log' # 安全删除 alias rm='trash' # 列出回收站 alias rl='trash-list'

所以新的替换是

# 使用rm前确认alias rm='echo " This is not the command you are looking for.If you really want use rm simply prepend a slash"; false'

以后执行rm的话,就会出现以下情况

$ rmThis is not the command you are looking for.If you really want use rm simply prepend a slash

以后如果真的要删除的话,请使用\rm 真的很没用的文件,而使用trash 需要删除的文件

完成后输入source /etc/bashrc是修改的别名生效。

项目地址: /andreafrancia/trash-cli

转自:Linux/Ubuntu: 使用 trash-cli 防止 rm 命令误删除重要文件

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。