命令行程序是工具,旨在实现核心功能。在Linux中,命令rm没有回收站。在Windows中,命令del也没有回收站。

图形化应用是产品,旨在考虑用户需求。在Windows中,文件管理器支持回收站功能。在Linux中,文件管理器(比如PCManFM、Nautilus等等)同样具有回收站,由XDG规范定义。

回到问题「为什么Linux的命令rm没有回收站呢?」,因为回收站不是rm的核心功能,而是产品功能,况且rm已经支持「确认删除"功能,以防止用户误删,找不出支持回收站功能的任何理由。


开弓没有回头箭,这就是linux要告诉你的道理。

所以要什么回收站呢?让你能不断的出错、修改?在正式的工作中,有多少时间能给你试错的机会呢?

所以linux从使用上就帮助你养成一步到位的习惯,不需要试错,只要最终结果。因为你是程序员,你不能马虎,不能不负责任。


当你按下 Enter 的一刻,你就应该对这条指令负责任。

回收站能帮你挽救误删的文件,万一将来你要执行的是一个重要指令(例如部署测试代码),如果你平时养成了无脑按 Enter 习惯的话,结果很有可能会是灾难性(例如把测试代码部署到真实环境下)。

所以不是 Linux 不能做回收站,而是相反,能有无数种做回收站的方法。大神们都深谙这个道理,所以才要迫使初学者养成对执行指令负责的习惯。习惯养成了,当然回收站也就不需要了。


其实你可以用 alias !配置好 rm 等于mv 到垃圾桶!

Make a simple script called for example move_to_trash.sh:

#!/bin/sh

mv "$@" ~/.trash

and then, add to your shell configuration file (for example, ~/.bashrc) :

alias rm &

/move_to_trash.sh

ps:

如果你要删除文件特别多的话,还是会出问题!上次删除几万个文件就报错了,说是变数太长! 如果有这种操作这个文件还要修改下! 水平有限就不献丑了!有大神在可以写个完整脚本,保证任何情况都能用!


alias大法可以保命


Linux就是这样。

你需要很清楚的明白,你的每个操作在干什么。

因为linux总是相信用户的决定

linux是让用户做决定,而不是windows那样替用户做决定

其次,你可以做回收站,将mv别名成rm,再用一个独立的分区就行了


Windows的del也没有回收站


windows的回收站只是一个文件管理器而已,不清空的话,还会占用硬碟空间的。


系统设计者认为这个没有必要,只要你执行这个,就认为你不需要这个了。如果你想建立回收站,可以改一下这个命令行,使用alias。可以百度一下


mv 替换rm


如果你想变相弄个回收站你就别用rm了 改用mv不就完了吗?这是思路的事


有个软体可以删除到回收站, 可以去百度下。。。

如果需要的话


按以下方法可能会好一点

vim ~/.bashrc

在末尾加入

alias rm=rm -i

这样的话每次删除会让你确认,会保险一点


因为他默然用户很聪明,知道自己在干什么


rm 是基础命令

回收站对应的基础命令是mv 或者cp然后rm,本质上是把文件移到一个固定的不显眼的地方,是比rm更高一级的封装。


使用命令行系统认为你是高级用户知道自己在做什么 只有在许可权范围内你可以随意进行操作


个人观点:

Terminal ,翻译过来,终端.

键盘上敲击的命令,有点像无线电发出的信号,没有回头之路,所以慎重.


怎么硕呢…

rm -i会提示你是否真的要删除,都已经提示了,意思也很明显了,总不能晃你两次吧

诶~没有删~

好了不抖机灵了

这个命令的就是删除的意思,它的本意也是从你的系统中抹去这个文件,而桌面系统的回收站的实质只不过是另一个文件夹罢了,你在命令行执行rm就相当于直接删除并清空回收站了。


windows的del也没有回收站机制哦.

需要fd.o的那个回收站实现的话, 可以使用trash-cli.


推荐阅读:
相关文章