print_mounts.sh (557B)
1 #!/bin/sh 2 LC_ALL=C sort -k2 /proc/mounts | 3 awk '{ # pp = previous pointer 4 sl = $2; 5 gsub("[^/]", "", sl); 6 slashc = length(sl); # slash count 7 if ($2 != "/" && 8 slashc > prevsc[pp] && 9 substr($2,0,length(prev[pp])) == prev[pp]) 10 { 11 for (i = 0; i < pp+1; i++) 12 printf "\t"; 13 pp++; 14 } 15 else if ($2 != "/") 16 { 17 if (slashc < prevsc[pp] && 18 substr($2,0,length(prev[pp-1])) != prev[pp-1]) 19 pp--; 20 for (i = 0; i < pp; i++) 21 printf "\t"; 22 } 23 print $2; 24 prev[pp] = $2; # previous mountpoint 25 prevsc[pp] = slashc; # previous slash count 26 }' | 27 dtree