Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 2nd, 2012  |  syntax: Bash  |  size: 1.25 KB  |  hits: 12  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #!/bin/bash
  2. # Prints UUID of all or a specific partition
  3.  
  4. if [ "x$1" = "x" ];
  5. then # No options given, print all
  6.     echo -e "PARTITION \t DIR \t UUID"
  7.     ls -lh /dev/disk/by-uuid/ | tail -n +2 | while read LINE
  8.     do
  9.         PARTITION=/dev/$(echo "$LINE" | awk '{ print $11 }' | sed 's_^\.\./\.\./__g')
  10.         MPOINT=$(mount | grep $PARTITION | awk '{ print $3 }')
  11.         UUID=/dev/disk/by-uuid/$(echo "$LINE" | awk '{ print $9 }')
  12.         echo -e "$PARTITION \t $MPOINT \t $UUID"
  13.     done | sort -n
  14. else # Print specific partition
  15.         if [ "$(ls -lh /dev/disk/by-uuid/ | grep -o $(basename $1))" != "$(basename $1)" ]
  16.                 then
  17.                         if [ "x$(echo $(basename $1) | egrep '^[a-z][a-z][a-z]$')" != "x" ]
  18.                         then # $1 is a harddrive
  19.                                 echo "Error: /dev/$(basename $1) is a harddrive, not a partition."
  20.                                 exit 1
  21.                         else
  22.                                 echo "Error: /dev/$(basename $1) does not exist."
  23.             fi
  24.                 else
  25.                         LINE=$(ls -lh /dev/disk/by-uuid/ | grep $(basename $1))
  26.                         PARTITION=/dev/$(echo "$LINE" | awk '{ print $11 }' | sed 's_^\.\./\.\./__g')
  27.                         MPOINT=$(mount | grep $PARTITION | awk '{ print $3 }')
  28.                         UUID=/dev/disk/by-uuid/$(echo "$LINE" | awk '{ print $9 }')
  29.                         echo -e "PARTITION \t DIR \t UUID"
  30.                         echo -e "$PARTITION \t $MPOINT \t $UUID"
  31.                 fi
  32. fi