Never been to CodeSnippets before?

Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world (or not, you can keep them private!)

List mounted volumes on Mac OS X


# See also:
# localvols in
# http://codesnippets.joyent.com/posts/show/1888


/bin/df -l | /usr/bin/sed -E -e 1d -e 's/^([^ ]+[ ]+)[^\/]+//' | /usr/bin/sort -u
/bin/df -l | /usr/bin/sed -E -e 1d -e 's/^([^ ]+[ ]+){5}//' | /usr/bin/sort -u

/bin/df -a | /usr/bin/sed -E -e 1d -e 's/^([^ ]+[ ]+)[^\/]+//' | /usr/bin/sort -u


declare IFS=$'\n'
#for volume in $(/bin/df -l | /usr/bin/sed -E -e 1d -e 's/^([^ ]+[ ]+)[^\/]+//' | /usr/bin/sort -u); do 
for volume in $(/bin/df -a | /usr/bin/sed -E -e 1d -e 's/^([^ ]+[ ]+)[^\/]+//' | /usr/bin/sort -u); do 
   echo "vol: $volume"
done
declare IFS=$' \t\n'



# Cf. Get A List Of Mounted USB Drives
# http://www.adminselfhelp.com/?p=220

system_profiler SPUSBDataType | grep "BSD Name:" | awk '{gsub (" BSD Name: ","");print}'
diskutil info disk1
diskutil info disk1s3

system_profiler SPUSBDataType | sed -E -n 's/ *BSD Name: *([^ ]*)/\1/p'

declare IFS=$'\n'
for device in $(system_profiler SPUSBDataType | sed -E -n 's/ *BSD Name: *([^ ]*)/\1/p'); do
   for usbdevice in $(diskutil info "$device" | sed -E -n 's/ *Mount Point: *(.*)/\1/p' | sed '/^ *$/d'); do
      echo "USB device mounted at: ${usbdevice}"
   done
done
declare IFS=$' \t\n'

Two shortcuts for displaying system_profiler data types

man system_profiler

function sptypes() {
   /usr/sbin/system_profiler -listDataTypes | /usr/bin/sed '1d' | /usr/bin/sort | /usr/bin/nl
   return 0
}

unset -f sptype
function sptype() {
   declare -i num
   declare sptypename
   num=$1
   #sptypename="$(/usr/sbin/system_profiler -listDataTypes | /usr/bin/sed '1d'  | /usr/bin/sort | /usr/bin/nl | /usr/bin/egrep "^[[:space:]]+${num}[[:space:]]" | /usr/bin/awk '{print $NF}')"
   sptypename="$(/usr/sbin/system_profiler -listDataTypes | /usr/bin/sed '1d' | /usr/bin/sort | /usr/bin/nl | /usr/bin/grep -w "${num}" | /usr/bin/awk '{print $NF}')"
   printf "\n\e[1m%s\e[m\n\n" "${sptypename}:"
   system_profiler "${sptypename}"
   return 0
}


sptypes
sptype 5

sptypes | grep -i pref
sptype 26 | less -R


#------------------------------------------


# interactive version
unset -f sptype
function sptype() {
   declare -a array
   declare -i num
   array=($(/usr/sbin/system_profiler -listDataTypes | /usr/bin/sed '1d' | /usr/bin/tr '\n' ' '))
   echo
   printf "%s\n" "${array[@]}" | /usr/bin/nl
   echo
   printf "\n\e[1m%s\e[m" "Please select a number:  "
   read num
   num=$num-1
   echo
   printf "\n\e[1m%s\e[m\n\n" "${array[${num}]}: "
   system_profiler $(echo "${array[${num}]}")
   #system_profiler $(echo "${array[${num}]}") | less -R
   return 0
}

sptype