我感觉有一天我会需要它,就像我刚刚删除了一些不该删除的东西,或者重命名了某些东西却不记得它应该叫什么,等等。
答案1
不好。Linux 中没有神奇的撤销按钮。
答案2
Unix 本身不提供撤销功能。其理念是,如果它消失了,它就消失了。如果它很重要,它就应该备份。
您可以将文件移至临时“垃圾”目录,而不是删除它。某些桌面环境会使用“删除”命令将文件移至垃圾。但请注意,只有少数应用程序会使用它;其他应用程序只会删除该文件。
许多命令可以撤消,例如,可以通过将文件移回原位来撤消文件移动。删除或覆盖文件的命令很难撤消;其中一些可以通过 shell 设置来提高对意外数据丢失的防御能力。特别是:
在命令行上,
cp
将mv
覆盖任何现有的目标文件,但您可以让它们提示:alias cp='cp -i' alias mv='mv -i'
我推荐这两个别名,因为没有它们,
cp
就mv
可以做两项工作:复制/移动和删除。不是拥有cp
和mv
删除文件更符合 unix 哲学(一个命令完成一项工作),而且不容易出错。(这与 完全不同rm -i
,后者在执行工作之前要求确认 — 这种系统提示往往会触发自动响应,因此成为无用的烦恼。)您可以让
>
重定向操作符仅接受创建文件,这样您就必须写入>|foo
以允许覆盖现有文件foo
。set -o noclobber
有一个保险丝自动保留旧版本副本的文件系统:复制文件系统,适用于大多数操作系统(*BSD、Linux、OS X、Solaris)。当然,这会占用大量资源。
如果您将文件移动到不同的目录并记住其名称(部分)但不记得其位置,则可以使用该locate
命令来找到它。
防止此类事故的最佳方法是使用版本控制系统(cvs、bazaar、darcs、git、mercurial、subversion 等)。学习需要一点时间,但从中期和长期来看,回报非常丰厚。