単一のファイルシステムオブジェクトがどのようにシンボリックリンクとディレクトリになるのですか?

単一のファイルシステムオブジェクトがどのようにシンボリックリンクとディレクトリになるのですか?

私が 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`

関連情報