作者 主题: [Linux] du-查看文件夹大小-并按大小进行排序  (阅读 2248 次)

离线 virtual

  • 管理员
  • 新手
  • *****
  • 帖子: 30
  • 评价: +0/-0
    • 查看个人资料
[Linux] du-查看文件夹大小-并按大小进行排序
« 回复 #1 于: 十月 16, 2018, 09:18:36 上午 »
使用df 命令查看当前磁盘使用情况:

jack@jiaobuchong:~$ df -lh
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        18G  5.7G   11G  35% /
udev            2.7G  4.0K  2.7G   1% /dev
tmpfs           553M  916K  552M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.7G  488K  2.7G   1% /run/shm
/dev/sda2       946M  128M  754M  15% /boot
/dev/sda1        93G   87G  5.5G  95% /media/2AA64C7FA64C4D8F_

下面du命令就上场了:

jack@jiaobuchong:~$ pwd
/home/jack
jack@jiaobuchong:~$ du -sh 
1.9G    .
jack@jiaobuchong:~$ cd ..
jack@jiaobuchong:/home$ du -sh jack/
1.9G    jack/
jack@jiaobuchong:/home$ du -h --max-depth=0 jack/
1.9G    jack/

能看到上边得到的相同的结果吧,

-s, –summarize display only a total for each argument, -s这个参数的作用就是仅显示总计,即当前文件夹的大小。

jack@jiaobuchong:~$ du -sh *
170M    Desktop
452K    Documents
161M    Downloads
12K examples.desktop
833M    installed-software
284K    learngit
4.0K    Music
4.7M    Pictures
3.2M    program_pratice
4.0K    Public
112K    session
4.0K    Templates
4.0K    Videos

可以将当前目录下所有文件的大小给列出来。那要将这些列出来的文件按照从大到小的方式排序呢?
jack@jiaobuchong:~$ du -sh * | sort -nr
833M    installed-software
452K    Documents
284K    learngit
170M    Desktop
161M    Downloads
112K    session
12K examples.desktop
4.7M    Pictures
4.0K    Videos
4.0K    Templates
4.0K    Public
4.0K    Music
3.2M    program_pratice

找sort 来帮个忙就可以了。呵呵!这个排序不正常哦,都是因为-h参数的原因,

jack@jiaobuchong:~$ du -s * | sort -nr 
852756  installed-software
173868  Desktop
164768  Downloads
4724    Pictures
3236    program_pratice
452 Documents
284 learngit
112 session
12  examples.desktop
4   Videos
4   Templates
4   Public
4   Music

这样就正常排序了。

du -s * | sort -nr | head 选出排在前面的10个,

du -s * | sort -nr | tail 选出排在后面的10个。