单个文件系统对象如何既是符号链接又是目录?

单个文件系统对象如何既是符号链接又是目录?

当我 ls 看到它时,它是一个包含一堆文件的目录。但当我 ls -l 这样做时,它是一个不是目录的符号链接。这是怎么回事——怎么可能?

$ ls /sys/class/net/enp0s20u1/device/driver/module   

coresize  holders   initstate  refcnt    srcversion  uevent
drivers   initsize  notes      sections  taint  
$    
$  ls -l /sys/class/net/enp0s20u1/device/driver/module  

lrwxrwxrwx 1 root root 0 Jun 13 05:24 /sys/class/net/enp0s20u1/device/driver/module -> ../../../../module/cdc_ether   
$  
$ readlink  /sys/class/net/enp0s20u1/device/driver/module  

../../../../module/cdc_ether  
$  
$  ls `readlink  /sys/class/net/enp0s20u1/device/driver/module`  

ls: cannot access '../../../../module/cdc_ether': No such file or directory  

答案1

该链接是相对的,因此您需要更改到其父目录才能使最后一个命令起作用:

cd /sys/class/net/enp0s20u1/device/driver
ls `readlink module`

或者,您可以要求readlink规范化链接:

ls `readlink -e /sys/class/net/enp0s20u1/device/driver/module`

相关内容