我需要释放一些空间,然后我开始寻找大而无用的文件和目录。为了首先关注最大的那些
du --max-depth=1 | sort -n
识别当前最大的文件夹。这样做的缺点是尺寸不是“人”单位,所以很难说每个文件夹有多大。
是否有其他方法可以获取每个文件夹的大小,然后按大小对其进行排序并以人为单位显示大小?
干杯, 罗伯特
答案 0 :(得分:2)
du -h
以人类可读的形式显示尺寸。您无法对它们进行排序,因此只需将其应用于已排序的文件:
du --max-depth=1 | sort -n | cut -f2 | xargs du --max-depth=0 -h
注意:不适用于名称中包含空格的目录。对于这种情况,请将xargs
替换为(慢得多)循环:
while read f ; do du --max-depth=0 -h "$f" ; done
答案 1 :(得分:1)
由于图片胜过千言万语,为什么不以图形方式使用http://www.marzocca.net/linux/baobab/index.html之类的东西?
当然,还可以使用https://apps.ubuntu.com/cat/applications/raring/linux-disk-cleaner/手动或以cron jo0b的方式删除不需要的包文件,临时文件,备份文件等。
答案 2 :(得分:0)
我一般不担心人类可读的格式,您可以使用:
du -s * 2>/dev/null | sort -k1 -n
以正确的顺序获得它们,然后专注于最后几个。
如果您真的需要人类可读的格式,您可以使用以下内容对du
的输出进行后期处理:
du -s * 2>/dev/null | sort -k1 -n | awk '{
if ($1>999999999) {
$1 = int($1/1000000000)"G"
} else {
if ($1>999999) {
$1 = int($1/1000000)"M"
} else {
if ($1>999) {
$1 = int($1/1000)"K"
}
}
}
} {print $0}'
根据其大小修改第一个参数,以GB,MB,KB或单独保留,然后打印修改后的行。