当我 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`