#!/bin/bash
du -s * 2> /dev/null | sort -k 1 -g -r | awk '{sum+=$1;printf("%.2fG\t%s\n", $1/1024/1024, $2)}END{printf("\nTotal size:\t%.2fG\n", sum/1024/1024)}'
将上面的的代码保存至/usr/local/bin/sortfile,并执行chmod +x /usr/local/bin/sortfile。后面只需要执行sortfile命令即可
如果想更详细得打印信息,可以使用下面的代码:
#!/bin/bash
du -k -s * | sort -n -r | awk -F'\t' '{sum+=$1;if(1024 * 1024 * 1024 * 1024 > $1 && $1 >= 1024 * 1024 * 1024) {printf "%.2fT\t\t %-2s\n", $1/(1024 * 1024 * 1024), $2} else if(1024 * 1024 * 1024 > $1 && $1 >= 1024 * 1024) {printf "%.2fG\t\t %-2s\n", $1/(1024 * 1024), $2} else if (1024 * 1024 > $1 && $1 >= 1024) {printf "%.2fM\t\t %-2s\n", $1/1024, $2} else {printf "%sk\t\t %-2s\n", $1, $2}}END{printf("\nTotal size:\t%.2fG\n", sum/1024/1024)}'