`
天梯梦
  • 浏览: 13757347 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

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-cli
sudo apt-get install -y trash-cli

 

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

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

tar xf trash-cli-master.tar.gz
cd trash-cli-master
sudo python setup.py install

 因为和 rm命令接口是兼容的,所以,可以使用 trash-put 代替 rm
trash-cli 在删除文件时会记录文件的原始路径、删除时间和文件权限,并且兼容
GNOME和 KDE的 trash实现。同时也实现了 FreeDesktop.org 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
2008-06-01 10:30:48 /home/andrea/bar
2008-06-02 21:50:41 /home/andrea/bar
2008-06-23 21:50:49 /home/andrea/foo
 

 

Search for a file in the trashcan:

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

 

Restore a trashed file:

$ trash-restore
0 2007-08-30 12:36:00 /home/andrea/foo
1 2007-08-30 12:39:41 /home/andrea/bar
2 2007-08-30 12:39:41 /home/andrea/bar2
3 2007-08-30 12:39:41 /home/andrea/foo2
4 2007-08-30 12:39:41 /home/andrea/foo
What file to restore [0..4]: 4
$ ls foo
foo
 

 

Remove all files from the trashcan:

$ trash-empty
 

 

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

$ trash-empty <days>
 

 

Example:

$ date
Tue Feb 19 20:26:52 CET 2008
$ trash-list
2008-02-19 20:11:34 /home/einar/today
2008-02-18 20:11:34 /home/einar/yesterday
2008-02-10 20:11:34 /home/einar/last_week
$ trash-empty 7
$ trash-list
2008-02-19 20:11:34 /home/einar/today
2008-02-18 20:11:34 /home/einar/yesterday
$ trash-empty 1
$ trash-list
2008-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的话,就会出现以下情况

 

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

 

 

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

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

 

项目地址: https://github.com/andreafrancia/trash-cli

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

 

 

 

 

 

 

分享到:
评论

相关推荐

    使用trash-cli避免误删文件--为rm增加回收站功能.docx

    为了避免这种情况,我们可以利用`trash-cli`工具,为`rm`命令增加回收站功能,使得删除的文件可以被移到回收站而不是直接删除。 `trash-cli`是一个命令行工具,由Python编写,提供了`trash-put`、`restore-trash`、...

    前端开源库-trash-cli

    Trash-cli的工作原理是在系统层面模拟了“移到回收站”的动作,而不是直接调用`rm`命令进行永久性删除。这为开发者提供了一种安全的方式来处理误删文件的情况,因为被移动到回收站的文件可以被恢复。在使用过程中,...

    Trash-Cli:Linux上的命令行回收站工具

    【Trash-Cli:Linux命令行回收站工具详解】 在Linux操作系统中,命令行是许多用户的首选交互方式,尤其是在日常的系统管理和自动...因此,无论是在日常使用还是在处理重要文件时,了解并使用Trash-Cli都是明智的选择。

    预防rm误删文件.docx

    rm 命令是 Linux 系统中最常用的删除命令,但是它也是一把双刃剑,如果不小心使用,可能会导致重要文件的丢失。在本文中,我们将讨论预防 rm 误删文件的两种方法,并详细介绍每种方法的实现细节。 方法一:使用 rm ...

    trash-cli:将文件和文件夹移到回收站

    $ npm install --global trash-cli 用法 $ trash --help Usage $ trash &lt;path&gt; […] Examples $ trash unicorn.png rainbow.png $ trash '*.png' '!unicorn.png' 小费 在您的.zshrc / .bashrc添加alias rm=...

    trash-cli:freedesktop.org垃圾桶的命令行界面

    `trash-cli` 为用户提供了一系列命令,如 `trash-list`、`trash-put`、`trash-empty` 和 `trash-restore`,这些命令分别用于查看垃圾箱中的文件、将文件移至垃圾箱、清空垃圾箱以及恢复文件。通过这些命令,用户无需...

    常用linu系统管理命令

    - 示例:`rm filename`,此命令删除单个文件 `filename`。 4. **删除包含关键字的文件:** - 查找并删除包含特定关键字的文件。 - 示例:`find /mnt/ebook/ -type f -exec grep "关键字" {} \; -print -exec rm ...

    Linux服务器rm命令替换

    除了自定义脚本,还可以使用现成的工具来替代`rm`,例如`trash-cli`。这个工具提供了类似Windows回收站的功能,删除的文件会被移动到特定的垃圾桶目录,可以方便地恢复。 ### 5. 安全最佳实践 - **定期备份**:...

    Linux 删除文件命令使用说明

    3. **使用trash命令**:在某些Linux发行版中,`trash-cli`包提供了类似Windows回收站的功能。安装后,可以使用`trash`命令删除文件,之后可以从回收站恢复。例如: ```bash trash example.txt ``` 记住,删除...

    如何在 Linux 中删除文件或目录 – 删除文件夹及其内容的命令.docx

    另一个安全的选项是使用 `trash-cli` 命令,它将文件移动到回收站而非直接删除。首先,确保已安装 `trash-cli`,命令为 `sudo apt-get install trash-cli`。安装后,删除文件的命令是 `trash filename`。 删除目录...

    Hadoop回收站trash-恢复删除的文件

    在Hadoop生态系统中,数据处理和存储是核心功能,但数据的安全性和管理同样至关重要。...在日常操作中,应谨慎使用删除命令,并确保理解Hadoop回收站的工作原理,以便在必要时能够快速、有效地恢复数据。

    ubuntu强制清空回收站 创建、删除文件及文件夹的方法.docx

    使用rm命令可以删除一个文件或多个文件。例如,使用以下命令可以删除名为"file1"的文件: rm file1 四、删除非空文件夹 使用rm -rf命令可以删除一个非空文件夹下的一切。例如,使用以下命令可以删除名为"test"的...

    rmtrash:使用“ trash-put”命令将文件(和目录)放入垃圾箱,其方式与“ trash-put”本身一样,与GNU的“ rm”和“ rmdir”兼容。

    在Linux和Unix-like系统中,`rm`命令是用于删除文件和目录的常用工具,但它的操作通常是不可逆的,一旦删除,数据通常无法恢复。为了解决这个问题,`rmtrash`工具应运而生。它提供了一种类似于Windows系统的回收站...

    Linux小技巧收集

    - 使用`find`结合`grep`命令来删除包含特定关键字的文件:`find /mnt/ebook/ -type f -exec grep "在此输入关键字" {} \; -print -exec rm {} \;` 5. **解压RPM包** - 在当前目录下解压`kernel-ntfs-2.4.20-8.i...

    Linux系统删除文件夹命令

    在Linux操作系统中,删除文件夹是一项常见的操作,用于清理不再需要的目录及其包含的所有内容。...在执行删除命令之前,确保已备份重要数据,以防止数据丢失。在进行任何涉及`-rf`的命令时,尤其需要三思而后行。

    rm-trash:打算在Linux中使用“ rm-trash”代替rm system命令。 该脚本将安全删除您的文件,并将其放入垃圾箱中,以备日后检索

    在Linux系统中,`rm`命令是用于删除文件或目录的常用工具,但它是一个非常危险的命令,因为一旦文件被删除,通常无法恢复。为了提供更安全的删除方式,类似于Windows系统的回收站功能,我们可以使用名为`rm-trash`的...

    empty-trash-cli:清空垃圾

    空垃圾cli 清空 在macOS,Linux和Windows上均可使用。... $ npm install --global empty-trash-cli 用法 $ empty-trash --help Usage $ empty-trash 有关的 -此模块的API 将文件和文件夹移到垃圾箱

    linux删除文件夹命令

    通过以上介绍,你应该对Linux下的文件和文件夹删除命令有了全面的了解,并知道如何处理无权限的问题。在日常工作中,熟练运用这些技巧将大大提升你的工作效率。记住,安全总是第一位,谨慎操作,避免不必要的数据...

    ubuntu下删除,重命名文件、文件夹

    "ubuntu下删除、重命名文件、文件夹" Ubuntu操作系统中,删除、重命名文件、文件夹是最基本的文件管理操作。下面将详细介绍在ubuntu系统下对文件或者文件夹进行删除、重命名等操作的命令和方法。 一、创建文件和...

    shell-safe-rm::smiling_face_with_sunglasses:Safe-rm:具有几乎全部功能和rm命令选项的bash rm的替代品,更安全的替代品! Safe-rm的行为与原始rm命令完全相同

    在默认情况下,`shell-safe-rm`会在删除文件前将其移动到废纸篓(在MacOS中是 Trash,在Linux上可能对应于`.Trash`目录),这给予用户一个撤销操作的机会。 `shell-safe-rm`的另一个重要特性是其强制删除选项。尽管...

Global site tag (gtag.js) - Google Analytics