私は、ツリー内の印刷装置の出力をそのドライブ名スキームの名前にlsblk
関連付けたい状況によく直面しています。/dev/sdXY
/dev/disk/by-id/
答え1
ID固有の名前はドライブモデルとシリアル番号で構成され、lsblk
次のコマンドを使用して一覧表示できます。
lsblk -o name,model,serial
このコマンドの出力は次のとおりです。
NAME MODEL SERIAL
sda SAMSUNG HD203WI S1UYJ1VZ500792
├─sda1
└─sda9
sdb ST500DM002-1BD14 W2APGFP8
├─sdb1
└─sdb9
sdc ST500DM002-1BD14 W2APGFS0
├─sdc1
└─sdc9
子孫のために一般的に使用されるいくつかの列を含むより長いコマンドは次のとおりです。
sudo lsblk -o name,size,fstype,label,model,serial,mountpoint
出力は次のとおりです。
NAME SIZE FSTYPE LABEL MODEL SERIAL MOUNTPOINT
sda 1,8T zfs_member SAMSUNG HD203WI S1UYJ1VZ500792
├─sda1 1,8T zfs_member storage /home
└─sda9 8M zfs_member
sdb 465,8G btrfs ST500DM002-1BD14 W2APGFP8
├─sdb1 465,8G btrfs
└─sdb9 8M btrfs
sdc 465,8G btrfs ST500DM002-1BD14 W2APGFS0
├─sdc1 465,8G btrfs rpool /
└─sdc9 8M btrfs
答え2
発見するここ、を介してデバイスIDを表示できますls -l /dev/disk/by-id
。
したがって、あなたの仕事は以下を介して行うことができます。
lsblk |awk 'NR==1{print $0" DEVICE-ID(S)"}NR>1{dev=$1;gsub("[^[:alnum:]]","",dev);printf $0"\t\t";system("find /dev/disk/by-id -lname \"*"dev"\" -printf \" %p\"");print "";}'
または
lsblk -r|awk 'NR==1{print $0" DEVICE-ID(S)"}NR>1{dev=$1;printf $0" ";system("find /dev/disk/by-id -lname \"*"dev"\" -printf \" %p\"");print "";}'