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