您可以在/proc/self/fd/NNN
上使用readlink
,其中NNN是文件描述符.这将为您提供文件打开时的名称——但是,如果文件从那时起被移动或删除,它可能不再准确(尽管Linux在某些情况下可以跟踪重命名).要验证,请输入给定的文件名stat
和fd fstat
,并确保st_dev
和st_ino
相同.
当然,并不是所有的文件描述符都指向文件,对于这些描述符,你会看到一些奇怪的文本字符串,比如pipe:[1538488]
.因为所有真正的文件名都是绝对路径,所以您可以很容易地确定哪些是绝对路径.此外,正如其他人所指出的,文件可以有多个指向它们的硬链接——这只会报告打开文件时使用的硬链接.如果想找到给定文件的所有名称,只需遍历整个文件系统.