Linux 中有撤消功能吗?

Linux 中有撤消功能吗?

我在一个批处理脚本中重命名了几个文件。有没有办法撤消更改而不必将其重命名回来?

Linux 是否提供一些本地的 ing 方式undo

答案1

Linux(与其他 unice 一样)本身不提供撤消功能。我们的哲学是,如果它消失了,它就消失了。如果它很重要,就应该备份。

有一个熔断文件系统可以自动保留旧版本的副本:复制文件。当然,这会使用大量资源。不幸的是,它没有维护。吉特夫斯可能是另一种选择,我从未尝试过。

防止此类事故的最佳方法是使用版本控制系统(cvs、bazaar、darcs、git、mercurial、subversion,...)。学习需要一点时间,但从中长期来看,它会带来巨大的回报。

答案2

很不幸的是,不行。

答案3

不,任何 Unix 中都不存在神奇的撤消功能。 Unix 假设你知道自己在做什么。对于撤消支持,请使用 VCS(您的文本编辑器可能也内置了它)。

大多数文件系统不具备透明地执行此操作的能力。

Mac 和 Windows 上的时间机器和系统恢复分别只是备份/更改控制系统。

答案4

Linux/Unix 系统没有取消删除功能的原因在于大多数文件系统存储信息的方式。文件元信息全部存储在磁盘的前面,并引用磁盘其余部分的索引节点。通常,大多数文件系统会为此元区域中的文件分配 10 个块。前7指的是前7个inode。第 8 个和第 9 个进入 inode 列表(双向链接块),第 10 个进入列表列表的列表(三重链接块)。这因文件系统(ext4、jfs、xfs 等)而异,但这些块列表通常可以处理从 2GB 到几 TB 的任何文件大小。

但由于所有这些信息都存储在磁盘的前面,因此当文件被删除时,无法引用磁盘上的 inode 来了解它们所使用的元数据所属的内容。相比之下,FAT32 和 NTFS 实际上将一些标头信息与文件本身一起存储,从而更容易识别一组块所属的文件(只要该空间尚未被较新的文件回收)。在Linux工作中,当你删除某些东西时,为了提高效率,它几乎总是首先被新数据立即覆盖。

相关内容