단일 파일 시스템 객체가 어떻게 심볼릭 링크이자 디렉토리가 될 수 있습니까?

단일 파일 시스템 객체가 어떻게 심볼릭 링크이자 디렉토리가 될 수 있습니까?

내가 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`

관련 정보