如何查找指向文件/文件夹的所有硬链接和符号链接(Windows和UNIX)

How to find all the hard and symbolic links to a file/folder (Windows and UNIX)?

本文关键字:链接 UNIX 符号链接 Windows 查找 何查找 文件 文件夹      更新时间:2023-10-16

如何在Windows中找到文件/文件夹的所有硬链接和符号链接(使用标准操作系统功能)?

什么与UNIX相对?

从这个linux的好教程:

https://jackal.livejournal.com/2164247.html

获取索引节点编号:

ls -i FILENAME

按索引节点编号查找文件:

find / -inum INODE-NUM-FROM-ABOVE

(可选)限制find以加快搜索速度。

示例:

> ls -i myfile.csv 
74714625 myfile.csv
> find ~/myfolder/ -inum 74714625
/home/me/myfolder/myfile.csv
/home/me/myfolder/another/path/another_filename_with_same_inode.csv

符号链接:

你必须搜索所有硬盘上的所有文件等,并分别检查每个文件。否则,无法获得特定文件的符号链接列表。

对于Linux,如何使用stat()确定文件是否为符号链接?可能会有所帮助。

对于Windows。。。好吧,重新分析点不是一行就能解释的
检查一个文件是否是C++中的符号链接并非易事。

硬链接:

Linux:同样(通常),如果不搜索所有文件并检查inode编号,这是不可能的。

Windows:根据使用的文件系统,FindFirstFileNameFindNextFileName
可能是有用的,但正如所说,它们并不总是有效的(ReFS…)