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

相信每个人都对 回收站(trashcan)很熟悉,因为无论是对 Linux 用户,还是 Windows 用户,或者 Mac 用户来说,它都很常见。当你删除一个文件或目录的时候,该文件或目录会被移动到回收站中。

需要注意的是,当把文件移动到回收站以后,文件系统空间并没有被释放,除非把回收站清空。

如果不想永久删除文件的话(清空回收站),可以利用回收站临时存储被删除了的文件,从而在必要的时候能够帮助我们恢复删除了的文件。

但是,如果在命令行使用 rm 命令进行删除操作,那么你是不可能在回收站中找到任何被删除了的文件或目录的。所以,在执行 rm 命令前请一定要三思。如果你犯了错误(执行了rm命令),那么文件就被永久删除了,无法再恢复回来,因为存储在磁盘上的元数据已经不在了。

根据 freedesktop.org 规范,垃圾(trash)是由桌面管理器比如 GNOME、KDE 和 XFCE 等提供的一个特性。当通过文件管理器删除一个文件或目录的时候,该文件或目录将会成为 垃圾(trash),然后被移动到回收站中,回收站对应的目录是 $HOME/.local/share/Trash

回收站目录包含两个子目录:files 和 info 。files 目录存储实际被删除了的文件和目录,info 目录包含被删除了的文件和目录的信息,比如文件路径、删除日期和时间,每个文件单独存储。

你可能会问,既然已经有了 图形用户界面(GUI)的回收站,为什么还需要命令行工具呢?因为对于大多数使用 *NIX 系统的家伙(包括我)来说,即使使用的是基于图形用户界面的系统,也更喜欢使用命令行而不是图形用户界面。所以,如果有人在寻找一个命令行回收站工具,那么这儿有一个不错的选择。

Trash-Cli 是什么

trash-cli 是一个命令行回收站工具,并且符合 FreeDesktop.org 的 垃圾(trash)规范。它能够存储每一个垃圾文件的名字、原始路径、删除日期和权限。

如何在 Linux 上安装 Trash-Cli

绝大多数的 Linux 发行版官方仓库都提供了 Trash-Cli 的安装包,所以你可以运行下面这些命令来安装。
对于 Debian/Ubuntu 用户,使用 apt-get 或 apt 命令来安装 Trash-Cli:
$ sudo apt install trash-cli

对于 RHEL/CentOS 用户,使用 yum 命令来安装 Trash-Cli:
$ sudo yum install trash-cli

对于 Fedora 用户,使用 dnf 命令来安装 Trash-Cli:
$ sudo dnf install trash-cli

对于 Arch Linux 用户,使用 pacman 命令来安装 Trash-Cli:
$ sudo pacman -S trash-cli

对于 openSUSE 用户,使用 zypper 命令来安装 Trash-Cli:
$ sudo zypper in trash-cli

如果你的发行版中没有提供 Trash-Cli 的安装包,那么你也可以使用 pip 来安装。为了能够安装 python 包,你的系统中应该会有 pip 包管理器。

$ sudo pip install trash-cli
Collecting trash-cli
Downloading trash-cli-0.17.1.14.tar.gz
Installing collected packages: trash-cli
Running setup.py bdist_wheel for trash-cli ... done
Successfully installed trash-cli-0.17.1.14

如何使用 Trash-Cli

Trash-Cli 的使用不难,因为它提供了一个很简单的语法。Trash-Cli 提供了下面这些命令:

  • trash-put: 删除文件和目录(仅放入回收站中)
  • trash-list :列出被删除了的文件和目录
  • trash-restore:从回收站中恢复文件或目录 trash.
  • trash-rm:删除回收站中的文件
  • trash-empty:清空回收站

下面,让我们通过一些例子来试验一下

1) 删除文件和目录:在这个例子中,我们通过运行下面这个命令,将 2g.txt 这一文件和 magi 这一文件夹移动到回收站中。
$ trash-put 2g.txt magi
和你在文件管理器中看到的一样。

2) 列出被删除了的文件和目录:为了查看被删除了的文件和目录,你需要运行下面这个命令。之后,你可以在输出中看到被删除文件和目录的详细信息,比如名字、删除日期和时间,以及文件路径。

$ trash-list
2017-10-01 01:40:50 /home/magi/magi/2g.txt
2017-10-01 01:40:50 /home/magi/magi/magi

3) 从回收站中恢复文件或目录:任何时候,你都可以通过运行下面这个命令来恢复文件和目录。它将会询问你来选择你想要恢复的文件或目录。在这个例子中,我打算恢复 2g.txt 文件,所以我的选择是 0 。

$ trash-restore
0 2017-10-01 01:40:50 /home/magi/magi/2g.txt
1 2017-10-01 01:40:50 /home/magi/magi/magi
What file to restore [0..1]: 0

4) 从回收站中删除文件:如果你想删除回收站中的特定文件,那么可以运行下面这个命令。在这个例子中,我将删除 magi 目录。
$ trash-rm magi

5)清空回收站:如果你想删除回收站中的所有文件和目录,可以运行下面这个命令。
$ trash-empty

6)删除超过 X 天的垃圾文件:或者,你可以通过运行下面这个命令来删除回收站中超过 X 天的文件。在这个例子中,我将删除回收站中超过 10 天的项目。
$ trash-empty 10
Trash-Cli 可以工作的很好,但是如果你想尝试它的一些替代品,那么你也可以试一试 gvfs-trash 和 autotrash 。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • Hadoop之NameNode Federation图文详解

    一. 前言 1.NameNode架构的局限性 (1)Namespace(命名空间)的限制 由于NameNode在内存中存储所有的元数据(metadata),因此单个NameNode所能存储的对象(文件+块)数目受到NameNode所在JVM的heap size的限制.50G的heap能够存储20亿(200million)个对象,这20亿个对象支持4000个DataNode,12PB的存储(假设文件平均大小为40MB).随着数据的飞速增长,存储的需求也随之增长.单个DataNode从4T增长到36

  • linux中各种锁机制的使用与区别详解

    前言: 相信需要了解这方面的知识的小伙伴,已经基本对进程间通信和线程间通信有了一定了解.例如,进程间通信的机制之一:共享内存(在这里不做详解):多个进程可同时访问同一块内存.如果不对访问这块内存的临界区进行互斥或者同步,那么进程的运行很可能出现一些不可预知的错误和结果. 接下来我们了解三种常见的Linux下的互斥操作->锁. 1.互斥锁(mutex) 特点:对于读者和写者来说.只要有一方获取了锁,另一方则不能继续获取,进而执行临界区代码. 创建锁: 有两种方法创建互斥锁,静态方式和动态方式.PO

  • Linux centOS安装JDK和Tomcat的教程

    首先下载JDK. 这里使用的是jdk-8u181-linux-x64.tar.gz 下载Tomcat. 这里使用的是apache-tomcat-8.5.35.tar.gz 创建目录 $ cd / $ mkdir soft $ cd soft 把安装包放到soft里 可以使用yum命令上传 安装 yum install -y lrzsz rz回车选择文件 安装JDK $ cd /usr $ mkdir java $ tar -zxvf jdk-8u181-linux-x64.tar.gz -C /

  • Hadoop 2.x与3.x 22点比较,Hadoop 3.x比2.x的改进

    问题导读 1.Hadoop3.x通过什么方式来容错? 2.Hadoop3.x存储开销减少了多少? 3.Hadoop3.x MR API是否兼容hadoop1.x? 一.目的 在这篇文章中,我们将讨论Hadoop 2.x与Hadoop 3.x之间的比较. Hadoop3版本中添加了哪些新功能,Hadoop3中兼容的Hadoop 2程序,Hadoop 2和Hadoop 3有什么区别? 二.Hadoop 2.x与Hadoop 3.x比较 本节将讲述Hadoop 2.x与Hadoop 3.x之间的22个

  • ubuntu docker搭建Hadoop集群环境的方法

    spark要配合Hadoop的hdfs使用,然而Hadoop的特点就是分布式,在一台主机上搭建集群有点困难,百度后发现可以使用docker构建搭建,于是开搞: github项目:https://github.com/kiwenlau/hadoop-cluster-docker 参考文章://www.jb51.net/article/109698.htm docker安装 文章中安装的是docker.io 但是我推荐安装docker-ce,docker.io版本太老了,步骤如下: 1.国际惯例更新

  • linux中shell的变量的数值计算

    1.expr命令 a=123 expr $a + 10 ##加法 expr $a - 10 ##减法 expr $a \* 10 ##乘法 expr $a / 10 ##除法 expr $a % 10 ##取余 2.$[]和$(())表达式 echo $[a+10] echo $[a-10] echo $[a*10] echo $[a/10] echo $[a%10] echo $((a+10)) echo $((a-10)) 3.let命令(let命令在执行后会保存新的值) let a+=10

  • Hadoop计数器的应用以及数据清洗

    数据清洗(ETL) 在运行核心业务MapReduce程序之前,往往要先对数据进行清洗,清理掉不符合用户要求的数据.清理的过程往往只需要运行Mapper程序,不需要运行Reduce程序. 1.需求 去除日志中字段长度小于等于11的日志. (1)输入数据 web.log (2)期望输出数据 每行字段长度都大于11 2.需求分析 需要在Map阶段对输入的数据根据规则进行过滤清洗. 3.实现代码 (1)编写LogMapper类 package com.atguigu.mapreduce.weblog;

  • Hadoop 2.X新特性回收站功能的讲解

    开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除.备份等作用. 1.回收站参数设置及工作机制 2.启用回收站 修改core-site.xml,配置垃圾回收时间为1分钟. <property> <name>fs.trash.interval</name> <value>1</value> </property> 3.查看回收站 回收站在集群中的路径:/user/用户名/.Trash/-. 4.修改访问垃圾回收

  • 101个脚本之建立linux回收站的脚本

    众所周知,linux是没有回收站的,一些人很害怕删错东西(有经验的linux管理员极少范这错误),个人不建议回收站,而应该是培养个人的安全意识.有点小跑题. 接着回来101个脚本之#15 Archiving Files As They're Removed 就是建立一个linux回收站的脚本 #!/bin/sh # newrm, a replacement for the existing rm command, provides a # rudimentary unremove capabil

  • 在CentOS中搭建Hadoop的详细步骤

    搭建说明:第一次搭建 Hadoop 的小伙伴,请严格按照文章中的软件环境和步骤搭建,不一样的版本都可能会导致问题. 软件环境: 虚拟机:VMware Pro14 Linux:CentOS-6.4(下载地址,下载DVD版本即可) JDK:OpenJDK1.8.0 (强力建议不要使用 Oracle 公司的 Linux 版本的 JDK) Hadoop:2.6.5(下载地址) 虚拟机的安装和Linux系统的安装这里就省略了,可以参照网上的教程安装,一般没什么大问题,需要注意的是记住这里你输入的用户密码,

随机推荐