#!/bin/bash
dir=$1
if [ -z "$1" ]
then
dir='.'
fi
find "$dir" -mindepth 1 -maxdepth 1 | perl -ne "s/^/\"/ && s/$/\"/ && print" | xargs du -sm | sort -n
echo "----total----"
du -sh "$dir"
пример:
home South Park # sdu
703 ./Bigger Longer & Uncut
1223 ./season 12 [TVRip]
1962 ./season 10 [DVDRip]
1979 ./season 01 [DVDRip]
2428 ./season 08 [DVDRip]
2449 ./season 11 [TVRip]
2453 ./season 05 [DVDRip]
2457 ./season 09 [DVDRip]
2615 ./season 07 [DVDRip]
2770 ./season 02 [DVDRip]
2786 ./season 03 [DVDRip]
2877 ./season 04 [DVDRip]
2987 ./season 06 [DVDRip]
----total----
29G .
home South Park #
Големината е в MB. Може и директория като аргумент.



4 коментара:
Ееее, Иво, четеш размера на файловете 2 пъти ... добре, че е умно ядрото и повечето работи ще ги е кеширало :)
Като ще е има пърл, направо го напиши цялото на него.
Също можеш да пробваш:
du -sm * | sort -nr ;-)
тия дни го открих :-Ь
Е то аз правя du -sm | sort -n ама чекията с find-a и perl-a е да хване .директориите, па ако не те кефи да чете два пъти махни втория du .:)
Погледни звездата в моя вариант, не прави ли, това което искаш ... без цялата oneliner фенщина :)
Тз, не хваща .директориите.
ipm@imitov ~ $ du -sm * | sort -nr | wc -l
240
ipm@imitov ~ $ sdu | wc -l
370
ipm@imitov ~ $
Т.е. не хваща .aMule, .mozilla и тн.
Публикуване на коментар