Rob*_* IV 192 directory disk-usage recursive
我知道当您使用ll或ls -l。但我想知道一个目录中有多少存储空间,包括该目录中的文件和其中的子目录等。我不想要文件数量,而是这些文件占用的存储量。
所以我想递归地知道某个目录中有多少存储空间?我猜,如果有命令,它将以字节为单位。
Gil*_*not 216
尝试这样做:
du -s dir
Run Code Online (Sandbox Code Playgroud)
或者
du -sh dir
Run Code Online (Sandbox Code Playgroud)
需要-h支持,取决于您的操作系统。
看
man du
Run Code Online (Sandbox Code Playgroud)
        Tot*_*tor 39
你只需要:
du -sh /path/to/directory
Run Code Online (Sandbox Code Playgroud)
其中-s是用于概要和-h对人类可读的(非标准选项)。
但是请注意,与 不同ls,这不会显示文件大小,而是显示磁盘使用情况(即文件系统块大小的倍数),但文件可能更小,甚至更大,因此您可以使用该--apparent-size选项:
du -sh --apparent-size /path/to/directory
Run Code Online (Sandbox Code Playgroud)
如果必须,这是通过网络传输的大小。
事实上,文件可能有“洞”(空壳),可能小于文件系统块大小,可能在文件系统级别被压缩等。手册页解释了这一点。
正如尼克拉斯 指出的那样,您也可以使用ncdu磁盘使用情况分析器。从目录中启动,它将通过从大到小的顺序向您显示哪些文件夹和文件使用磁盘空间。
你也可以看到这个问题。
Flo*_*ild 33
请注意,如果您想知道一个目录中所有 {sub} 文件夹的大小,您还可以使用-dor--max-depth选项du(它带有一个参数:递归限制)
例如 :
du -h /path/to/directory -d 1
Run Code Online (Sandbox Code Playgroud)
会向你展示类似的东西
4.0K /path/to/directory/folder1
16M  /path/to/directory/folder2
2.4G /path/to/directory/folder3
68M  /path/to/directory/folder4
8G   /path/to/directory/folder5
Run Code Online (Sandbox Code Playgroud)
PS:0作为递归限制进入相当于-s选项。这 2 个命令将为您提供相同的结果(您给定的目录递归人类可读大小):
du -h /path/to/directory -d 0
du -sh /path/to/directory
Run Code Online (Sandbox Code Playgroud)
        小智 19
这将为您提供当前目录中的大小列表,包括文件夹(递归)和文件。
$ du -hs *
7.5M    Applications
9.7M    Desktop
 85M    Documents
 16K    Downloads
 12G    Google Drive
 52G    Library
342M    Movies
8.3M    Music
780M    Pictures
8.5G    Projects
8.0K    Public
 16K    client1.txt
Run Code Online (Sandbox Code Playgroud)
        小智 18
已经提到的du命令的替代方法是ncduwhich 是一个很好的用于终端的磁盘使用分析器。您可能需要先安装它,但它在大多数软件包存储库中都可用。
编辑:对于输出格式,请参阅这些屏幕截图 http://dev.yorhel.nl/ncdu/scr
小智 7
我喜欢以下方法:
du -schx .[!.]* * | sort -h
Run Code Online (Sandbox Code Playgroud)
在哪里:
s:仅显示每个参数的总计c:产生总计h:以人类可读格式打印尺寸x:跳过不同文件系统上的目录.[!.]* *:总结每个文件的磁盘使用情况,递归目录(包括“隐藏”目录)| sort -h:根据人类可读的数字排序(例如,2K 1G)