du -sch ./*
浏览系统以查找可能无故存储的大的无用文件:$ du -sch ./*
du: cannot read directory ‘./drbunsen/.gvfs’: Permission denied
du: cannot read directory ‘./drbunsen/.cache/dconf’: Permission denied
18G ./drbunsen
18G total
$ cd drbunsen/
$ du -sch ./*
601M ./Desktop
20K ./Documents
598M ./Downloads
4.0K ./flash
4.0K ./Music
8.0M ./Pictures
4.0K ./Public
4.0K ./Templates
4.0K ./Ubuntu One
8.0K ./Videos
11G ./VirtualBox VMs
6.9M ./workspace
12G total
如何制作隐藏文件可见?
du -sch ./.*
给出与du -sch ./*
相同的结果。#1 楼
在您的主文件夹中使用du -sch .[!.]* * |sort -h
。或者,我最常使用的命令是
ncdu
如果需要,易于安装:
sudo apt-get install ncdu
评论
谢谢,你是个天才。我不是bash的高手,[!.]怎么办?
–邦森博士
13-10-22在14:43
@Dr_Bunsen:这是一个列出所有以单个..开头的文件的glob。这是一个巧妙的窍门:如果您不知道glob外观是什么,请尝试运行echo。[!。] *或其他方法。然后,外壳程序将扩展glob并将其传递到echo中,打印出结果文件列表。
– Tikhon Jelvis
2014年5月21日在17:46
这样就无法列出名为..foo的文件,并且可能导致名称以-开头的文件出现问题。如果arg列表太长,也可能会失败。 du -ahd1不会有这些问题。
–StéphaneChazelas
15年6月22日在20:08
与原始问题无关,但与日常使用有关:包括'c'开关以显示总计并重新排序选项可能会很有用,以使此命令更容易记住:du -cksh。 [!。] * * | sort -h。
– Daddy32
17年2月21日在13:06
#2 楼
我在coreutils邮件列表中有相同的问题,因为我很难记住@ don.joey发出的奇怪命令。 Bob Proulx提出了更好,更自然的命令:du -ahd1 | sort -h
如果要列出当前目录中的所有文件,则可以使用'。'。或根本不给它任何文件参数。另外,您
可能要使用-d,--max-depth = N选项。
尝试以下操作:
du -hd1
评论
添加-a选项使其等效。
–StéphaneChazelas
15年6月22日在20:16
这应该是公认的答案,因为它更容易记住和理解。
–巴斯蒂安
2015年9月10日在8:47
#3 楼
当您在目录中运行同一命令时,它不包括以.
开头的隐藏文件。例如,如果您安装了Steam,则默认情况下会在~/.local/share/Steam/
下安装游戏,并且它本身也已安装在其中。 在bash下,您显然需要运行
du -sch .[!.]* *
,因为它无法正确扩展.*
glob。在zsh
或其他shell下,du -sch * .*
应该可以工作,因为.*
应该扩展为包括当前目录中所有隐藏文件的列表。评论
好。那么bash显然存在问题,因为它似乎无法正确扩展。*。但是du -sch *。*确实在zsh下做正确的事情。在bash下,du-sch。*似乎很重要。但不会扩展为单独显示文件。
–多贝
13-10-22在13:39
对我来说,*也扩展为../*,因此du退出了我想查看其大小的目录!我不得不改用./.[^.]*。
–阿里
2014-09-19 22:58
是zsh和所有从Forsyth shell(如今主要是pdksh及其派生类)派生的shell,它们在做正确的事情,并且不会扩展。和这里。所有其他类似Bourne的外壳(bash,Bourne,AT&T ksh,破折号,yash ...)都可以。在zsh中,您将使用du -sch-*(D),而不是du -sch-*。*。
–StéphaneChazelas
2015年6月22日在20:11
评论
du -hs。[^。] * *用于所有隐藏文件,不包括。和..其他答案似乎丢失了。这里没有足够的代表来回答这个高度活跃的问题,因此请快速发表评论。如果使用bash,则可以使用dotglob shell选项“修复”此问题。我在这里使用了一个子shell,这样它就不会对其他命令全局影响=>(shopt -s dotglob; du -shc *)