A maneira normal de fazer isso seria usar find
, se estiver disponível. Com o GNU find (e possivelmente outros), você pode fazer:
find /dev -type l -ls
em que a condição -type l
diz que corresponde apenas aos links simbólicos. Isto lhe dará saída como (copiando apenas algumas linhas aqui):
1971 0 lrwxrwxrwx 1 root root 10 Mar 25 19:29 /dev/disk/by-uuid/593596f4-a5a1-4e87-b985-b0196c2a067b -> ../../sda3
1952 0 lrwxrwxrwx 1 root root 10 Mar 25 19:31 /dev/disk/by-uuid/7db08eaf-1d68-4aa3-a8e0-7e62489efb0f -> ../../sdb1
1933 0 lrwxrwxrwx 1 root root 10 Mar 25 19:29 /dev/disk/by-uuid/a2d18bff-a710-43a8-b41a-fb39b814a165 -> ../../sda1
4209 0 lrwxrwxrwx 1 root root 10 Mar 26 08:22 /dev/disk/by-path/pci-0000:00:12.2-usb-0:3:1.0-scsi-0:0:0:0-part1 -> ../../sdc1
Você pode substituir a ação -ls
pelo que preferir ( -print
e -exec
parecem úteis).
Além disso, suponho que você poderia usar algo como ls -l /dev/disk/by-id | grep ^l
, mas analisar a saída de ls é geralmente uma má idéia .