Questions tagged «hard-link»

硬链接是文件系统条目,它将名称与文件系统上的另一个文件相关联。

4
可以通过其inode检索文件吗?
我以指定的顺序运行了以下命令: $ln a b $ls -i a b 523669 a 523669 b $rm -f a $ls -i b 523669 b 从该测试中得出的结论是,该命令rm实际上仅删除了文件名(a在此测试中)而不是文件,因为inode仍然存在并且可以通过另一个文件名(b)检索。 我的问题是,如果一个文件仅硬链接到一个文件名,则在rm执行该文件时,真实文件(即inode)是否已完全删除?如果不是,是否可以不通过文件名而是仅通过索引节点来检索文件索引节点?
27 rm  hard-link  inode 


1
dpkg替换FAT文件系统上的文件
升级或重新安装软件包时dpkg(最终使用该软件包的任何东西,如apt-get等),它都会通过在替换之前创建指向该文件的硬链接来备份现有文件。这样,如果解压缩失败,它可以轻松地放回现有文件。很好,因为它可以保护操作系统免受Bad Things™的影响。 除非...仅在文件系统支持硬链接时才有效。并非所有文件系统都可以-例如FAT文件系统。 我正在为特定的嵌入式ARM平台开发Debian发行版,并且引导环境要求某些文件(包括内核)位于FAT文件系统上,以便引导代码能够找到并加载它们。 当您升级内核软件包(或该FAT分区中具有文件的任何其他软件包)时,安装失败并显示以下信息: dpkg: error processing archive linux-image3.18.11+_3.18.11.2.armadillian_armhf.deb (--install): unable to make backup link of `./boot/vmlinuz-3.18.11+' before installing new version: Operation not permitted 整个升级失败。 我已经在网上搜索过,唯一可以找到的参考是在进行特定升级时遇到特定问题的特定人员,答案通常是“删除/boot/vmlinuz-3.18.11+,然后重试”,是的,解决该特定问题。 但这不是我的答案。我是OS发行商,而不是OS用户,因此我需要一种解决此问题的方法,该方法不涉及最终用户在升级之前手动删除其内核文件。我需要一种方法来告诉dpkg对/ boot上的文件(或我所关心的所有文件进行“复制,而不是硬链接”),尽管这样会稍微降低升级操作的速度),或者更好的方法是“如果硬链接失败,不要抱怨,只需复制它即可。” 我已经尝试了诸如--force-unsafe-io和甚至--force-all标志to之类的事情dpkg,但是没有任何效果。
22 dpkg  hard-link  fat 

5
为什么硬链接仅在同一文件系统内有效?
我正在阅读Mark Ba​​tes 撰写的命令行介绍。 在第一章中,他提到硬链接不能跨越文件系统。 关于硬链接要注意的重要事项是它们仅在当前文件系统上有效。您不能在其他文件系统上创建到该文件的硬链接。为此,您需要使用符号链接,第1.4.3节。 我只知道一个文件系统。从root(/)开始的那个。硬链接不能跨越文件系统的说法对我来说没有意义。 Unix文件系统上的Wikipedia 文章也没有帮助。

4
硬链接和复制的文件有什么区别?
我的理解是,硬链接包括原始文件的副本,并且我可以删除一个目录中的硬链接文件,而该文件仍将存在于另一个目录中。 如果是这样,我为什么要完全使用硬链接?为什么不只有两个单独的文件?
22 files  rhel  hard-link 

2
取消引用硬链接
在tar命令的手册页中,列出了用于遵循硬链接的选项。 -h, --dereference follow symlinks; archive and dump the files they point to --hard-dereference follow hard links; archive and dump the files they refer to 如何tar知道文件是硬链接?它是如何遵循的? 如果我不选择此选项怎么办?它是如何不硬解引用?
22 tar  hard-link 

2
硬链接算作普通文件吗?
我想知道是否有一种方法可以注册该单词,但是由于大多数现代搜索引擎无法使用长度超过5个单词的短语,因此在此方面我需要一些帮助。 我想知道这是因为我正在制作一个bash脚本,该脚本必须将文件注册为某些类型并做出相应的决定。从技术上讲,这对我的项目并不重要,但我很好奇。 另外,如果它们被认为是常规文件,那么有没有办法检查这些文件是否被硬链接而不需要解析ls -i?有没有一种方法可以检查某些任意文件X是否在不使用find -i命令的情况下硬链接到其他任意文件Y ?

4
带有硬链接的cp的行为感到惊讶
我非常了解硬链接的概念,并且已经阅读了一些基本工具的手册页,例如cp---甚至是最新的POSIX规范---。我仍然惊讶地观察到以下行为: $ echo john > john $ cp -l john paul $ echo george > george 在这一点上john,它们paul将具有相同的inode(和内容),并且george在两个方面都将有所不同。现在我们做: $ cp george paul 在这一点上,我期望george并paul拥有不同的inode编号,但是内容相同-实现了这一期望-但我也期望paul现在拥有与in相同的inode编号john,并且john仍然具有内容john。这就是我感到惊讶的地方。事实证明,将文件复制到目标路径paul还导致在共享inode的所有其他目标路径上安装相同文件(相同inode)的结果paul。我当时想cp创建一个新文件,然后将其移动到旧文件所占据的位置paul。相反,它似乎要做的是打开现有文件paul,将其截断并写入george的内容添加到该现有文件中。因此,具有相同inode的任何“其他”文件都将同时更新“其”内容。 好的,这是系统性的行为,现在我知道可以期待它了,因此我可以弄清楚如何解决它,或者适当地利用它。让我感到困惑的是应该在哪里看到该行为记录在案?如果我没有看过文档中的某处,我会感到惊讶。但是显然我错过了,现在找不到讨论此行为的消息来源。
20 cp  hard-link 

2
如何创建到inode(ext4)的硬链接?
如果我知道文件的索引节点(索引节点),但不知道其路径(或其任何路径),是否可以直接创建到该索引节点的硬链接? 我可以使用找到文件sudo find / -inum 123546,然后创建一个硬链接,但这对于我的应用程序来说太慢了。 注意:我正在使用ext4文件系统。
17 inode  hard-link 

2
硬链接创建-权限?
哪些权限会​​影响硬链接的创建?文件所有权本身重要吗? 假设用户alice想target.txt在目录中创建到文件的硬链接target-dir。 和都alice需要哪些权限?target.txttarget-dir 如果target.txt是由用户拥有bill和target-dir被用户所拥有chad,它改变什么? 我试图模拟这种情况,在ext4文件系统中创建以下文件夹/文件结构: #> ls -lh . * .: drwxr-xr-x 2 bill bill 60 Oct 1 11:29 source-dir drwxrwxrwx 2 chad chad 60 Oct 1 11:40 target-dir source-dir: -r--r--r-- 1 bill bill 0 Oct 1 11:29 target.txt target-dir: -rw-rw-r-- 1 alice alice 0 Oct 1 11:40 dummy 虽然alice可以创建到的软链接target.txt,但她不能创建硬链接: …

5
如何获得忽略硬链接的文件夹大小?
我使用rsnapshot进行备份,该备份会生成一系列包含相同名称文件的文件夹。有些文件是硬链接的,而另一些是分开的。例如,hourly.1/file1和hourly.2/file1可能硬链接到同一文件,而hourly.1/file2和hourly.2/file2则是完全独立的文件。 我想查找该文件夹使用的空间量,hourly.2 而忽略与成为文件硬链接的任何文件hourly.1。因此,在上面的示例中,我想获取file2的大小,但忽略file1。 我在Linux上使用bash,我想从命令行尽可能简单地执行此操作,因此请不要使用大型图形解决方案或其他仅OS的解决方案。

2
cp的行为奇怪。(点)或..(点)是源目录
这个答案表明,可以将目录中的所有文件(包括隐藏文件)复制src到目录中,dest如下所示: mkdir dest cp -r src/. dest 答案或其注释中没有任何解释说明其为何真正起作用,并且似乎也没有人找到相关文档。 我尝试了几件事。一,正常情况: $ mkdir src src/src_dir dest && touch src/src_file src/.dotfile dest/dest_file $ cp -r src dest $ ls -A dest dest_file src 然后,/.最后: $ mkdir src src/src_dir dest && touch src/src_file src/.dotfile dest/dest_file $ cp -r src/. dest $ ls -A dest …

2
使用cp -l或ln进行硬链接之间有区别吗?
我正在使用rsync和硬链接实现备份方案。我知道我可以将link-dest与rsync一起使用来进行硬链接,但是我看到有人提到在rsync中实现“ link-dest”之前使用“ cp -l”。我知道的另一种硬链接方法是“ ln”。 所以我的问题是,出于好奇:与使用“ ln”相比,使用“ cp -l”进行硬链接有区别吗?
15 cp  hard-link  ln 


2
在同一文件系统中进行硬链接时,无效的跨设备链接
我有/home/myuser/Desktop/rc/.netrc文件,我想硬链接到/ root,即root用户的主目录。当我做: ln /home/user/Destkop/rc/.netrc /root 它给出以下错误: ln:创建硬链接/root/.netrc' =>.netrc':无效的跨设备链接 但是当我将文件硬链接到myuser的主目录(即/ home / myuser)时,它可以工作。 那么,有什么问题,为什么这里只有一个文件系统时却显示无效的跨设备? PS。我正在使用RHEL6
14 rhel  root  home  hard-link  .netrc 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.