美文网首页
Linux的难题,终于有解了!

Linux的难题,终于有解了!

作者: DevWeekly | 来源:发表于2022-08-05 21:38 被阅读0次

程序员宝藏库https://github.com/Jackpopc/DevWeekly

删除文件,无论是在windows还是Linux都是非常频繁的操作,使用Windows时有回收站,如果删错了还可以恢复,但是,使用Linux则不然,rm -rf应该是一种噩梦版的存在,一旦删错,再也无法恢复了。

如果真的对删文件删除有迫切需求,可以避开rm命令,同样有很多方式实现Windows下回收站的功能,从而起到内容保护的作用。

  1. 创建一个文件夹recycle,用于存储那些想要删除,但是不确定后续是否会用到的文件,然后使用mv把这些文件移动到这个文件夹内;
  2. 使用trash或者gvfs-trash这些命令,然后给它命一个别名alias rm=trash,这样执行rm时其实调用的时背后的命令,会把文件移到回收站;

下面,就给大家介绍一个命令行工具,就可以很轻松的解决rm绕开"回收站"的问题,给rm加一个类似Windows回收站的功能。

trash-cli

trash-cli 用于将文件移动到回收站,同时会记录文件的原地址、删除日期和权限。

trash-cli 和 KDE、GNOME、XFCE 使用同一个回收站,你可以在命令行或脚本运行trash-cli。

下面逐步介绍一下它的用法。

安装

简单方法

要求:

Python 3 (Python 2.7 也可以) pip (在 Debian 上用 apt-get install python-pip 来安装 pip)

命令行下执行命令:

pip install trash-cli

源码安装

为所有用户安装:

git clone https://github.com/andreafrancia/trash-cli.git
cd trash-cli
sudo pip install .

为当前用户安装:

git clone https://github.com/andreafrancia/trash-cli.git
cd trash-cli
pip install .

为当前用户安装后你可能需要把以下代码添加到 .bashrc:

export PATH=~/.local/bin:"$PATH"

卸载命令:

pip uninstall trash-cli

包管理工具安装

Debian/Ubuntu (apt):

sudo apt install trash-cli

使用

trash-cli提供了如下命令:

trash-put           把文件或目录移动到回收站
trash-empty         清空回收站
trash-list          列出回收站文件
trash-restore       恢复回收站文件
trash-rm            删除回收站文件

移动文件到回收站:

$ trash-put

列出回收站文件:

$ 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

搜索回收站文件:

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

恢复回收站文件:

$ 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

删除所有回收站文件:

$ trash-empty

删除回收站中 n 天前被回收的文件:

$ trash-empty <days>

设定别名

或许,有的同学觉得每次执行trash-cli命令比较麻烦,还是觉得rm更加简单、好记忆。

这样的话,可以通过设定别名的方式,给trash-cli设定一个rm的别名,这样,每次执行rm,实际执行trash-cli的命令:

$ alias rm="trash-put"

但是,官方并不建议这样使用,因为,trash-cli和rm的命令语法并不完全相同,可能存在不兼容的地方。此外,shell的alias只在交互界面有效,使用脚本运行时无效。

另外,如果你如果怕习惯性的执行rm命令造成误操作,你可以给 rm 设置一个别名来提醒你不要使用它:

alias rm='echo "This is not the command you are looking for."; false'

如果你真的要用 rm,那就在 rm 前加上斜杠来取消别名:

\rm file-without-hope

文件在哪?

还有一个问题需要回答,执行trash-cli命令后,被删除的文件放在哪了?

被删除后的文件存放在下面路径,如果删错了,也可以自行移出:

~/.local/share/Trash/

建议大家有空可以多浏览Github,有很多非常优秀的开源项目。但是,目前Github上项目多如牛毛,而且刷榜现在也非常严重,想要找到优质的项目变得越来越难。

这里,给大家推荐Github上一个非常不错的项目《DevWeekly》,这个项目每周都会精挑细选一些优质的开源项目,涵盖C++、JAVA、JavaScript、Python、Go等不同编程语言。此外,还有一些开源工具、优秀的技术文章,喜欢的同学可以Star并收藏一下,每周五会定期更新:

相关文章

  • Linux的难题,终于有解了!

    程序员宝藏库:https://github.com/Jackpopc/DevWeekly[https://gith...

  • 亚马逊精选产品难题终于破解了

    【关键词】4KMILES平台/大数据选品/Amazon运营/Listing优化【文章导读】你还在Amazon后台,...

  • 新时代的女性,应该先要爱情,还是先选面包呢?

    面包 or 爱情 呢? 世纪难题终于有解了~ 看看面包与爱情的小故事: 我“贪心”点,既选择有爱情但又不失面包……...

  • 难题破解了

    总算是把房子的问题解决了,心情随之好转起来。感觉自己就是个心里放不住事的人,所以成不了大事。有时退一步海阔天空,突...

  • 经过20天,我的难题自然解了,终于上稿了

    “当一个人能够直接阅读上帝的时候,那时间太宝贵了。我想一个人开始用心书写自己故事的时候,那时间太美妙了” 7月的最...

  • 得到4.15简述

    张明楷星法学13——不作为:母亲与女朋友同时落水时该先救谁? 这个千古难题终于有正解了。不救女朋友是没有道义,不救...

  • 终于理解了他

    她体型变胖了,有时候他会讽刺她,甚至有时候还会很生气。这时候她也会很生气,认为他不再如从前,总是猜测,就是不再那么...

  • 不要误解了linux

    linux其实并不是一款系统,它是一个内核,衍生而出的系统称为linux系统。其中,最著名的服务器系统redhat...

  • 使用可爱的linux命令

    上面三次的分享我们先后了解了linux操作系统是什么,学会安装linux,以及用linux完成report,这次小...

  • 我终于理解了生活,理解了父母

    做完手术的母亲被推到病房时已接近下午六点,我们七手八脚把母亲安置在病床上后,主治大夫又详细地交代了接下来需要注意的...

网友评论

      本文标题:Linux的难题,终于有解了!

      本文链接:https://www.haomeiwen.com/subject/oaxmwrtx.html