Note: You are viewing an old version of this page. View the current version.

Differences between version 3 and previous revision of CyberLeo/Scraps/duso.

Other diffs: Previous Major Revision, Previous Author

Newer page: version 3 Last edited on Sunday, 6 July 2014 0:51:36 by CyberLeo Revert
Older page: version 2 Last edited on Monday, 15 October 2012 8:24:11 by CyberLeo Revert
@@ -1,13 +1,29 @@
 Compute a sorted disk usage analysis using du, without including filesystem mountpoints 
  
 <code brush="bash"> 
-duso() {  
-sudo sh -e <<"EOF"  
-mnt="$(stat -c %m .)"  
-LANG=C ls -1a | grep -Gv '^\.$\|^\.\.$' | while read dent  
-do  
- [ "$(stat -c %m "${dent}")" = "${mnt}" ] && printf "%s\0" "${dent}"  
-done | xargs -0 du -sx | sort -bn 
+case $(uname -s) in  
+Linux)  
+ duso() {  
+ sudo sh -e <<"EOF"  
+ mnt="$(stat -c %m .)"  
+ LANG=C ls -1a | grep -Gv '^\.$\|^\.\.$' | while read dent  
+ do  
+ [ "$(stat -c %m "${dent}")" = "${mnt}" ] && printf "%s\0" "${dent}"  
+ done | xargs -0 du -sx | sort -bn 
 EOF 
-
+ }  
+ ;;  
+FreeBSD)  
+ duso() {  
+ sudo sh -e <<"EOF"  
+ mnt="$(stat -f %d .)"  
+ LANG=C ls -1a | grep -Gv '^\.$\|^\.\.$' | while read dent  
+ do  
+ [ "$(stat -f %d "${dent}")" = "${mnt}" ] && printf "%s\0" "${dent}"  
+ done | xargs -0 du -sx | sort -bn  
+EOF  
+ }  
+ ;;  
+*) echo "Unknown platform $(uname -s)" ;;  
+esac  
 </code> 

version 3

Compute a sorted disk usage analysis using du, without including filesystem mountpoints

case $(uname -s) in
Linux)
  duso() {
    sudo sh -e <<"EOF"
    mnt="$(stat -c %m .)"
    LANG=C ls -1a | grep -Gv '^\.$\|^\.\.$' | while read dent
    do
      [ "$(stat -c %m "${dent}")" = "${mnt}" ] && printf "%s\0" "${dent}"
    done | xargs -0 du -sx | sort -bn
EOF
  }
  ;;
FreeBSD)
  duso() {
    sudo sh -e <<"EOF"
    mnt="$(stat -f %d .)"
    LANG=C ls -1a | grep -Gv '^\.$\|^\.\.$' | while read dent
    do
      [ "$(stat -f %d "${dent}")" = "${mnt}" ] && printf "%s\0" "${dent}"
    done | xargs -0 du -sx | sort -bn
EOF
  }
  ;;
*) echo "Unknown platform $(uname -s)" ;;
esac