function bytestohuman() { if [ "${1:0:2}" == "-h" ]||[ "${1:0:2}" == "-?" ] then echo -e "\033[0;32mReinis ${FUNCNAME[0]} V1.0\033[0m" echo "Wandelt Bytes in leserliche Groesse um" return fi b=${1:-0}; d=''; s=0; S=(Bytes {K,M,G,T,P,E,Z,Y,B}iB) while ((b > 1024)) do d="$(printf ".%02d" $((b % 1024 * 100 / 1024)))" b=$((b / 1024)) let s++ done echo "$b$d ${S[$s]}" } function dub() { if [ "${1:0:2}" == "-h" ]||[ "${1:0:2}" == "-?" ] then echo -e "\033[0;32mReinis ${FUNCNAME[0]} V1.0\033[0m" echo -e "\033[0;32m${FUNCNAME[0]} listet SIZE und sortiert\033[0m" echo "${FUNCNAME[0]} -d listet keine Unterverzeichnisse" echo "-dNR:" echo "NR = Verzeichnisstiefe" echo "EXAMPLE:" echo "${FUNCNAME[0]} -d3 /var/log" echo "Listet Size sortiert in Tiefe von 3 Verzeichnissen auf" return fi if [ "${1:0:2}" == "-d" ] then if [ "${1:2:2}" == "" ] then deep=1 else deep=$(echo "${1:2:2}") fi CMD="du -b --max-depth=$deep $2" else CMD="du -b $1" fi $CMD|sort -n|while read SIZELINE do SIZE=$(echo $SIZELINE|cut -f1 -d" ") LINE=$(echo $SIZELINE|cut -f2- -d" ") echo "$(bytestohuman $SIZE) $LINE"|sed 's/\.\// /g' done }