shell 在Linux操作系统中有没有一种方法可以创建一个不依赖于文件位置或名称的文件引用?

9lowa7mx  于 2023-10-23  发布在  Shell
关注(0)|答案(1)|浏览(113)

假设我有一个需要被其他文件引用的文件,并且需要能够在不破坏所有其他文件中的引用的情况下移动和重命名该文件。有没有办法做到这一点?这是一个类似于linux操作系统的问题,但如果有人对windows有一个答案,我也会很感激。
我想到了一个关于符号链接的主意。我创建了一个简单的python脚本,它首先找到指向正在移动的文件的所有链接(使用mlocate),移动文件,然后更新所有链接。所有其他需要引用此文件的文件都通过符号链接引用它。它工作,但这意味着我需要一个符号链接的每个文件,我想引用,我需要存储它们的地方。这并不坏,但我想知道是否有更好的方法。任何建议都欢迎。

nc1teljy

nc1teljy1#

对此至少有两种方法:

  • 硬链接。如评论中所述,这些做你问,与给定的限制:
  • 如果你不小心,硬链接很容易被破坏,
  • 它们只能在同一个文件系统中工作(而且必须在支持它的文件系统中)。

此外,你不应该硬链接到目录。

  • 绑定坐骑。您可以使用mount --bind /path/to/real_file /another/path/other_name/path/to/real_file作为/another/path/other_name进行访问。这种方法的重要特点包括:
  • 挂载不是持久性的。在每次 Boot 时都必须重新设置它们,通常需要借助/etc/fstab或其他类型的配置
  • mount ing是一个特权操作。普通用户做不到。
  • 与硬链接不同,绑定挂载可以跨文件系统。
  • 必须有一个实际的文件(可以是空的)来挂载。
  • 重命名、删除和类似的文件系统操作需要以不同的方式完成

相关问题