
Untitled
By: a guest on
Aug 2nd, 2012 | syntax:
Bash | size: 1.25 KB | hits: 12 | expires: Never
#!/bin/bash
# Prints UUID of all or a specific partition
if [ "x$1" = "x" ];
then # No options given, print all
echo -e "PARTITION \t DIR \t UUID"
ls -lh /dev/disk/by-uuid/ | tail -n +2 | while read LINE
do
PARTITION=/dev/$(echo "$LINE" | awk '{ print $11 }' | sed 's_^\.\./\.\./__g')
MPOINT=$(mount | grep $PARTITION | awk '{ print $3 }')
UUID=/dev/disk/by-uuid/$(echo "$LINE" | awk '{ print $9 }')
echo -e "$PARTITION \t $MPOINT \t $UUID"
done | sort -n
else # Print specific partition
if [ "$(ls -lh /dev/disk/by-uuid/ | grep -o $(basename $1))" != "$(basename $1)" ]
then
if [ "x$(echo $(basename $1) | egrep '^[a-z][a-z][a-z]$')" != "x" ]
then # $1 is a harddrive
echo "Error: /dev/$(basename $1) is a harddrive, not a partition."
exit 1
else
echo "Error: /dev/$(basename $1) does not exist."
fi
else
LINE=$(ls -lh /dev/disk/by-uuid/ | grep $(basename $1))
PARTITION=/dev/$(echo "$LINE" | awk '{ print $11 }' | sed 's_^\.\./\.\./__g')
MPOINT=$(mount | grep $PARTITION | awk '{ print $3 }')
UUID=/dev/disk/by-uuid/$(echo "$LINE" | awk '{ print $9 }')
echo -e "PARTITION \t DIR \t UUID"
echo -e "$PARTITION \t $MPOINT \t $UUID"
fi
fi