You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
999 B
30 lines
999 B
#!/bin/sh
|
|
|
|
# GET THE INITITAL OUTPUT OF `ls /sys/block`
|
|
OUTPUT="$(ls -l --color=never /sys/block | grep -v virtual | grep devices | cut -d\ -f9-)"
|
|
|
|
# STRIP OFF THE PCI BUS LOCATION INFORMATION
|
|
OUTPUT="$(echo "${OUTPUT}" | sed 's|\.\.\/devices/pci[0-9a-f:]\{7\}\(/[0-9a-f:.]\{12\}\)\+/||g')"
|
|
|
|
#STRIP OFF THE SUPERFLUOUS USB HOST INFORMATION
|
|
OUTPUT="$(echo "${OUTPUT}" | sed 's|\(usb[0-9]\+\)/.*/host|\1/host|g')"
|
|
|
|
# CONDENSE THE TARGET INFORMATION
|
|
OUTPUT="$(echo "${OUTPUT}" | sed 's|target[0-9:]\+/[0-9:]\+:\([0-9]\+\)|target\1|g')"
|
|
|
|
# STRIP OFF BLOCKS
|
|
OUTPUT="$(echo "${OUTPUT}" | sed 's|/block/.*||g')"
|
|
|
|
# CONVERT -> TO A TAB
|
|
OUTPUT="${OUTPUT// -> / }"
|
|
|
|
# SWAP COLUMNS
|
|
OUTPUT="$(echo "${OUTPUT}" | awk '{t=$1; $1=$2; $2=t; print;}')"
|
|
|
|
# NOW GET DEVICE IDs
|
|
|
|
while read -r LOCATION BLOCKDEV; do
|
|
DEVICE_ID="$(ls -l --color=never /dev/disk/by-id | sed 's/ \+/ /g' | grep -v 'nvme-eui\|wwn-' | grep "${BLOCKDEV}$" | cut -d\ -f9)"
|
|
echo "${LOCATION} ${BLOCKDEV} ${DEVICE_ID}"
|
|
done <<< "${OUTPUT}"
|