linux + 如何识别文件是否由链接指向

yae*_*ael 6 linux solaris ksh shell-scripting

我创建名为 - 192.9.200.1 的新文件

    touch 192.9.200.1
Run Code Online (Sandbox Code Playgroud)

然后我创建一个指向 192.9.200.1 文件的新链接

    ln -s 192.9.200.1 file
Run Code Online (Sandbox Code Playgroud)

所以最后我得到:

     ls -ltr /tmp

    -rw-r--r--  1 root root        0 May  8 19:39 192.9.200.1
    lrwxrwxrwx  1 root root       11 May  8 19:39 file -> 192.9.200.1
Run Code Online (Sandbox Code Playgroud)

但是当我对 192.9.200.1 文件执行ls -ltr时,我看不到其他链接是否指向 192.9.200.1

     ls -ltr 192.9.200.1
      -rw-r--r-- 1 root root 0 May  8 19:39 192.9.200.1
Run Code Online (Sandbox Code Playgroud)

识别文件或目录是否有链接的方法是什么,

  • 备注我不想在 /tmp 目录下执行 ls -ltr来查找链接!

USD*_*att 5

符号链接类似于 Windows 中的快捷方式。它是文件系统中指向另一个文件的条目。目标文件不会被触及,原始文件元数据也不会发生任何更改 - 它不知道它已被链接到。

仅通过查看 ls 中的信息无法判断文件是否具有指向它的符号链接。

然而,硬链接会增加文件系统上的链接计数,这可以在目录列表中看到。如果将两个文件硬链接到相同的数据,则两个文件的链接计数都将显示为 2