在Linux上如何查找目录中所有的硬链接

时间:2019-11-20 08:53:52  来源:igfitidea点击:

如何找出目录中所有的硬链接?
Linux中如何找出和某个文件相关的所有硬链接?
如何使用Linux或Unix命令找出给定文件的所有硬链接?
使用find命令如何找出硬链接文件?

如何查找到给定文件的所有硬链接

硬链接是文件的不同名字罢了。它们都是指向相同的inode文件。

创建指向foo文件的硬链接:

$ ln foo bar
$ ln foo dir2/foobar

在当前目录中查找foo文件的所有硬链接:

find /dir/to/search/ -samefile /path/to/file/name
find / -samefile foo
find / -xdev -samefile foo

示例

在/backups/目录中找出/etc/passswd文件的所有硬链接:

$ find /backups/ -samefile /etc/passwd

使用inode查找文件的硬链接

首先查看文件的索引节点编号

$ ls -li fileNameHere
$ ls -li /tmp/demo.txt

根据inode查找文件的所有硬链接:

$ find /tmp/ -inum 1035089
$ find /tmp/ -xdev -inum 1035089

要删除inode1035089文件的所有硬链接,请运行:

$ find /tmp/ -xdev -inum 1035089 | xargs rm -v
$ find /tmp/ -xdev -inum 1035089 -print0 | xargs -I {} -0 rm -v {}