在Bash中,如何安全地确定软链接指向的内容?

swe*_*rup 34 bash symlink

我需要处理许多目录,确定它们中的哪些文件是符号链接,以及它们链接到哪些文件.这听起来很简单,但我无法控制文件名中是否存在控件或其他字符,我需要一个强大的解决方案.

因此,给定一个任意名称的文件,当链接目标还可以包含任意内容时,如何安全地确定它链接的内容?

edu*_*ffy 53

readlink -f <linkname>

  • 我没有在 mac 中使用 `-f` 选项,因为它给了我一个错误 `readlink: invalid option -- f` (2认同)

Kon*_*kis 6

stat <linkname>
Run Code Online (Sandbox Code Playgroud)

例子:

stat /usr/local/cuda
Run Code Online (Sandbox Code Playgroud)

前 2 行将给出:

File: '/usr/local/cuda' -> 'cuda-8.0'
Size: 8             Blocks: 0          IO Block: 4096   symbolic link
...
Run Code Online (Sandbox Code Playgroud)