Questions tagged «hard-link»

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

3
如何仅对未在其他位置进行硬链接的文件占用的空间进行“ du”处理?
采用rsync --link-dest了节省空间的快照,我怎么能弄清楚我多少空间实际保存?或更笼统: 如何仅考虑未在目录结构以外的地方进行硬链接的文件,从而计算出目录使用了多少空间?提出不同的问题:删除该目录后实际上将释放多少空间?(du -hs会说谎。可能包含硬链接本身所需的空间)

2
为什么硬链接似乎占据与原始链接相同的空间?
多亏了在这里和此页面的一些常见问题解答,我现在了解了链接。我看到硬链接用不同的名称引用相同的inode,而副本是不同的“节点,具有不同的名称。加上软链接具有与它们的inode相同的原始文件名和路径,因此如果移动文件,则链接会中断。 因此,我用一些文件(下面的“ saluton_mondo.cpp”)测试了我学到的东西,制作了一个硬链接和一个软链接以及一个副本。 jmcf125@VMUbuntu:~$ ls -lh soft hard copy s*.cpp -rw-rw-r-- 1 jmcf125 jmcf125 205 Aŭg 27 16:10 copy -rw-rw-r-- 2 jmcf125 jmcf125 205 Aŭg 25 13:34 hard -rw-rw-r-- 2 jmcf125 jmcf125 205 Aŭg 25 13:34 saluton_mondo.cpp lrwxrwxrwx 1 jmcf125 jmcf125 17 Aŭg 27 16:09 soft -> saluton_mondo.cpp 我发现尴尬的是,硬链接的大小与原始大小相同,并且在逻辑上与副本大小相同。如果硬链接和原始链接共享同一个索引节点(即具有数据且仅在文件名上有所不同),那么硬链接不应该仅使用其名称的空间而不是205个字节吗?还是ls -lh返回的原始文件的大小?但是,我怎么知道文件名占用什么空间呢?这里说硬链接没有大小。他们的文件名和原始文件名一起保存吗?硬链接的文件名存储在哪里?

6
就地断开硬链接?
我将我的点文件保留在版本控制下,部署它们的脚本会创建硬链接。我也习惯etckeeper将我/etc置于版本控制之下。最近我收到了这样的警告: warning: hard-linked files could cause problems with bzr 简单的副本(cp filename.ext filename.ext)不起作用: cp: `filename.ext' and `filename.ext' are the same file 重命名/移动文件(跨卷除外)也不会破坏硬链接。 所以我的问题是:是否有一种方法可以在不真正知道该文件的其他硬链接在哪里的情况下,断开与该文件的硬链接?
13 hard-link 

3
为什么我不能从/ dev目录以外的设备文件创建硬链接?
当我想以root模式在/home目录中创建硬链接时,Linux显示以下错误消息: ln: failed to create hard link ‘my_sdb’ => ‘/dev/sda1’: Invalid cross-device link 上面的错误信息如下所示: # cd /home/user/ # ln /dev/sda1 my_sdb 但是我只能在/dev目录中创建一个硬链接,而在其他目录中则不可能。 现在,我想知道如何从目录(或其他目录)中的现有设备文件(如sdb1)创建硬链接/home?
11 linux  hard-link  ln 

4
`cp -al`快照,其硬链接在编辑后会定向到新文件
我正在尝试定期为大型文件夹拍摄快照。 我在这里阅读过:http : //www.mikerubel.org/computers/rsync_snapshots/#Incremental ,它cp -al可以通过简单地复制硬链接来获取文件夹快照。 很好,但问题是在此快照中,如果我更改文件,则所有快照中的文件都会更改。相反,我希望系统在更改时创建一个新文件并链接到该文件。这样,每个快照都不会在编辑第一个文件时失效。 我该如何实现? ps我试过了rsync -a --delete --link-dest=../backup.1 source_directory/ backup.0/,但是有同样的问题。

1
有没有一种表达方式:`--link`或回退到cp中的普通副本(来自GNU coreutils)?
有没有办法告诉cp给--link(即创建硬链接),但回落的情况下,我试图设备间的硬链接?设备间链接是不可能的,并且会导致cp失败。 我问的原因是因为我想在a中使用它,GNUmakefile并且比一些复杂且冗长的代码(或函数)更喜欢可读的命令行。 问题是针对GNU coreutils(7.4和8.13)。 注意:现在,解决方法将类似于(GNU make recipe语法): cp -fl $^ $@ || cp -f $^ $@ 在设备间链接的情况下,这当然会产生虚假的错误消息,尽管随后第二次cp调用成功了。而且,这将被扩展(毕竟源代码形式看起来可读),它将不再变得易读。

2
是否有任何可以成功执行ln -d的文件系统?
从ln的手册页中: -d, -F, --directory allow the superuser to attempt to hard link directories (note: will probably fail due to system restrictions, even for the superuser) 是否有任何文件系统驱动程序实际上允许这样做,还是唯一的选择mount --bind <src> <dest>?还是这种行为被内核阻止,甚至还没有到达文件系统特定的驱动程序? 注意:我实际上并不打算在任何计算机上执行此操作,只是出于好奇。

2
为什么在/ bin中混合使用符号链接和硬链接?
我了解符号链接和硬链接之间的技术区别,这是有关它们在实践中使用的问题,尤其是我很好奇地知道为什么两者都在看似相似的条件下使用:/bin目录。 这是它在我的系统上列出的片段: ~$ ls -lai /bin total 10508 32770 drwxr-xr-x 2 root root 4096 Jun 14 11:47 . 2 drwxr-xr-x 28 root root 4096 Sep 6 13:15 .. 119 -rwxr-xr-x 1 root root 959120 Mar 28 22:02 bash 2820 -rwxr-xr-x 3 root root 31112 Dec 15 2011 bunzip2 127 -rwxr-xr-x …

4
用于归档的文件系统
我的文件系统中有一些复杂的只读数据。它包含svn信息库的某些修订的数千个快照,以及回归测试的输出。快照之间的相同文件已经使用硬链接删除了。这样,存储容量并不需要很大,但是它仍然消耗大量的inode,这对于我的主文件系统来说,使fsck痛苦地长了。 我想将这些数据移至另一个文件系统,以免对主文件系统造成太大影响。有什么建议吗?Squashfs似乎是一个可能的选择,但我必须检查它是否可以有效处理硬链接。

1
查找文件的所有硬链接而无需遍历文件系统
我在此页面中看到,inode有一个链接计数器,可知道指向该inode的文件数(读取为“目录项”)。有没有一种方法可以知道哪些目录包含此类条目而无需遍历整个文件系统?此信息存储在某处吗? struct inode { kdev_t i_dev; unsigned long i_ino; umode_t i_mode; nlink_t i_nlink; uid_t i_uid; gid_t i_gid; … };

1
CentOS 6和CentOS 7之间的硬链接权限行为不同
尝试创建硬链接时,CentOS 7中出现权限错误。使用CentOS 6中设置的相同权限,我不会收到该错误。问题集中在组权限上。我不确定哪个操作系统版本正确和错误。 让我说明发生了什么。在当前的工作目录中,我有两个目录:源目录和目标目录。开始时,目的地为空;源包含一个文本文件。 [root@tc-dlx-nba cwd]# ls -l total 0 drwxrwxrwx. 2 root root 6 Jun 12 14:33 destination drwxrwxrwx. 2 root root 21 Jun 12 14:33 source [root@tc-dlx-nba cwd]# ls -l destination/ total 0 [root@tc-dlx-nba cwd]# ls -l source/ total 4 -rw-r--r--. 1 root root 8 Jun 12 14:20 …

5
我可以使用`ls -l`确定目录中子目录的数量吗?
当使用显示目录时ls -l,它们的链接数(输出中的第二个字段)至少为两个:一个用于目录名称,一个用于目录。. $ mkdir foo $ ls -l total 2 drwxr-xr-x 2 user wheel 512 4 oct 14:02 foo 始终假设2以上的链接数与该dir(..链接)中的子目录数相对应是否安全?
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.