Raimondi

bdu.lsp

Sep 16th, 2011
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/usr/bin/env newlisp
  2. (setq magnitudes '("B" "K" "M" "G"))
  3. (define (human b , (radix 0))
  4.   (while (> (/ b 1024) 0)
  5.          (set 'b (div b 1024))
  6.          (inc radix))
  7.   (format "%d %s" b (nth radix magnitudes)) )
  8. (define (printer f)
  9.   (println (format "%6s  %s" (human (int (f 0))) (f 1))) )
  10. (define (reader l)
  11.   (parse l {\s} 0) )
  12. (define (du-sort i j)
  13.   (< (int (i 0)) (int (j 0))) )
  14. (define (proper-du)
  15.   (if (= (length (exec "du --help 2>/dev/null")) 0)
  16.     (replace {^\d+} (exec "du -sk *") (* $1 1024))
  17.     (exec "du -sb *") ) )
  18. (map printer (sort (map reader (proper-du)) du-sort))
  19. (exit)
Advertisement
Add Comment
Please, Sign In to add comment