我得到du -h
如下输出:
103M ./.wine/drive_c/windows/mono/mono-2.0/lib/mono
103M ./.wine/drive_c/windows/mono/mono-2.0/lib
129M ./.wine/drive_c/windows/mono/mono-2.0
129M ./.wine/drive_c/windows/mono
362M ./.wine/drive_c/windows
545M ./.wine/drive_c
我只想显示最可操作的文件夹,即文件夹./.wine/drive_c/windows/mono/mono-2.0/lib/mono
如果子文件夹占用了大部分磁盘空间,是否有任何方法可以删除父文件夹?
仅显示叶文件夹的设置可能会解决问题,或者在计算父文件夹的大小时从父文件夹中减去所有子文件夹的大小的设置。
答案1
如果您使用的是 GNU du,则可以使用-S
或--separate-dirs
选项在计算父目录的使用情况时不包括子目录的大小。
您的du
命令可能不支持此选项。
您可以使用这对排序来获取最大的单个目录(假设是 GNU 工具):
du --separate-dirs -h . |sort -h
答案2
就我个人而言,我只是将它与 GNU 排序的力量结合起来:
du -ch | sort -h
这将导致大小以人类可读的格式排序。例如:
$ du -h /usr/ | head -20 | sort -h
8.0K /usr/src/linux-headers-3.2.0-3-common/include/misc
12K /usr/src/linux-headers-3.2.0-3-common/include/drm/i2c
12K /usr/src/linux-headers-3.2.0-3-common/include/net/netfilter/ipv4
16K /usr/src/linux-headers-3.2.0-3-common/include/net/netfilter/ipv6
20K /usr/src/linux-headers-3.2.0-3-common/include/net/phonet
28K /usr/src/linux-headers-3.2.0-3-common/include/acpi/platform
52K /usr/src/linux-headers-3.2.0-3-common/include/net/netns
60K /usr/lib32/libv4l
76K /usr/src/linux-headers-3.2.0-3-common/include/net/caif
96K /usr/src/linux-headers-3.2.0-3-common/include/scsi/fc
108K /usr/src/linux-headers-3.2.0-3-common/include/net/bluetooth
112K /usr/src/linux-headers-3.2.0-3-common/include/drm/ttm
148K /usr/src/linux-headers-3.2.0-3-common/include/net/netfilter
264K /usr/src/linux-headers-3.2.0-3-common/include/rdma
284K /usr/src/linux-headers-3.2.0-3-common/include/acpi
596K /usr/src/linux-headers-3.2.0-3-common/include/drm
608K /usr/src/linux-headers-3.2.0-3-common/include/scsi
668K /usr/games
6.3M /usr/lib32/gconv
8.9M /usr/lib32
从man sort
:
-h, --human-numeric-sort
compare human readable numbers (e.g., 2K 1G)
它仍然显示您不关心的内容,但现在很容易找到您关心的内容。
答案3
如果您只是寻找清晰的景观,我推荐这个durep
套餐。
输出示例:
root@dogmeat:~# durep -td 4 -hs 50M /usr/
[ /usr 4.8G (0 files, 9 dirs) ]
1.9G [########### ] 38.57% lib/
463.6M [####### ] 24.46% x86_64-linux-gnu/
102.3M [###### ] 22.07% wine/
276.2M [#### ] 14.57% i386-linux-gnu/
96.1M [########## ] 34.80% wine/
222.4M [### ] 11.73% libreoffice/
189.3M [######################### ] 85.12% program/
122.6M [# ] 6.47% chromium-browser/
87.6M [##################### ] 71.46% chromium-browser
79.5M [# ] 4.19% virtualbox/
79.4M [# ] 4.19% jvm/
73.4M [########################### ] 92.52% java-7-openjdk-amd64/
73.4M [############################# ] 99.99% jre/
75.7M [# ] 3.99% python2.7/
58.4M [####################### ] 77.21% dist-packages/
58.9M [ ] 3.11% firefox/
52.2M [ ] 2.75% libwireshark.so.2.0.2
1.4G [######## ] 29.56% src/
1.2G [####### ] 26.03% share/
211.6M [#### ] 16.54% fonts/
199.3M [############################ ] 94.18% truetype/
84.2M [############ ] 42.23% horai-umefont/
174.6M [#### ] 13.64% icons/
91.5M [############### ] 52.39% gnome/
66.4M [##################### ] 72.60% icon-theme.cache
77.5M [# ] 6.05% gimp/
77.5M [##############################] 100.00% 2.0/
66.2M [######################### ] 85.43% help/
74.4M [# ] 5.82% virtualbox/
56.9M [###################### ] 76.42% VBoxGuestAdditions.iso
62.9M [# ] 4.91% doc/
240.1M [# ] 4.89% bin/
使用-td
参数指定最大深度,使用-hs
参数指定结果中显示的文件夹的最小大小。
答案4
不太确定这是否是您想要的,但您可以使用 GNU 删除父find
目录-execdir
:
find . -type d -execdir du -ch "{}" \;
该-execdir
选项类似于但执行您在找到文件的-exec
子目录中提供的命令。find