如何防止自己意外删除/更改文件?

如何防止自己意外删除/更改文件?

我使用的是 Ubuntu 10.04。我有一个很大的目录,里面有很多子目录和我在脚本中经常使用的数据文件。我想确保我不会意外删除/覆盖/更改此超级目录中的任何文件/目录。

我怎样才能做到这一点?

答案1

大部分按保护程度降低和便利程度增加的顺序排列:

  • 将文件存储在物理只读介质(例如 CD-ROM)上。

  • 将文件存储在以只读方式挂载的单独文件系统上。

  • 如果您是管理员,请创建另一个用户并让这些文件归另一个用户所有。

  • 使用 FUSE绑定文件系统(Ubuntu 软件包bindfs)创建目录树的只读视图,并将脚本指向此只读视图

    bindfs -p a-w /path/to/actual/tree /path/to/readonly/view
    myscript -d /path/to/readonly/view
    
  • 使用 使目录树变为只读chmod a-w /path/to/tree

  • 创建包含硬链接文件的树的副本,并将脚本指向该副本。然后,您的脚本可能仍会修改现有文件,但如果它们创建、删除或替换文件,则只会影响副本。

    cp -al /path/to/actual/tree /path/to/readonly/view
    myscript -d /path/to/readonly/view
    

我建议你使用 bindfs。考虑到你的要求,我唯一会选择其他方法的原因是它不可用。

如果你希望脚本能够写入目录树,但不影响实际文件,则可以使用联合文件系统,例如函数或者unionfs-fuse

答案2

没有真正的办法,因为无论如何,最终您总是能够删除它们。

不过,您可以尝试使用文件权限。右键单击目录并将文件夹访问权限设置为访问文件,并将文件访问权限设置为只读。然后单击将权限应用于封闭文件。这样,当您决定删除该目录中的文件时,您必须手动取消此设置。

答案3

您可以将rsync目录移到另一个目录并用来--link-dest创建硬链接,这样它们就不会占用任何额外的空间。

一篇好文章每个 Unix 的时间机器

答案4

人非圣贤,孰能无过。有一次,我删除了一个重要文件,因为我刚醒来,还很困(没有宿醉) :) 幸运的是,这件事发生在我学会了一些技巧之后,这些技巧有助于减轻此类愚蠢行为的负面影响。这些技巧如下:

  • 始终进行备份,定期确保备份确实包含应有的内容,以避免出现丢失文件的情况,尝试从备份中恢复文件后发现由于某种原因备份中不包含该文件
  • 使用版本控制
  • 使用像 inotify 这样的会计系统,它将帮助您追踪文件系统的变化

从那次事件之后,我又制定了一条严格的规定:“困倦时切勿碰电脑”。

相关内容