在Linux中如何获得目录/文件夹的大小?

目录或文件夹可以包含多个文件和目录。这些多个文件和目录占用了一些磁盘空间,并且具有一定的大小。但是当我们列出文件和目录时,我们看到目录大小被列为4096字节或4KB。这是不包含文件和目录大小的目录标准大小。那么如何获得目录或文件夹的大小及其内容呢?

null

使用du命令获取目录大小

这个 命令用于获取文件和目录的磁盘使用情况。du的名字来自于 磁盘使用率 “. du命令为不同的情况提供了许多特性。默认情况下,du命令以递归方式列出所有文件和目录的大小。由于递归行为,这会产生大量的输出。

du
图片[1]-在Linux中如何获得目录/文件夹的大小?-yiteyi-C++库
使用du命令获取目录大小

获取当前工作目录大小

当前工作目录的大小可以通过du命令添加-s和-h选项来显示。默认情况下,du命令递归列出所有文件和目录的大小。但是-s选项用于显示当前工作目录的总大小或摘要大小。

du -sh

输出如下所示,该点用于指定当前工作目录。在本例中,当前工作目录大小为185MB。

185M    .

或者,可以使用glob操作符列出当前工作目录的所有文件和目录大小,如下所示。

du -sh *

输出如下。

4,0K    data1 4,0K    data2 4,0K    data3 4,0K    data4 4,0K    data5 4,0K    Desktop 4,0K    Documents 4,0K    Downloads 0    file1 0    file2 0    file3 0    file4 4,0K    Music 0    myfile 4,0K    myfolder 0    mylink 4,0K    names.txt 0    newfile 11M    nmap-7.91.tar.bz2 452K    Pictures 4,0K    Public 4,0K    read_line_by_line.sh 4,0K    sample.txt 20K    Templates 4,0K    test 0    text.txt 4,0K    thinclient_drives 4,0K    userinput.py 4,0K    Videos 8,0K    year

获取指定的目录大小

可以指定特定的目录或路径以获取其大小。只需提供du命令的路径。在下面的示例中,我们将获得用户ismail的主目录的大小。

du -csh /home/ismail

输出如下。

185M    /home/ismail185M    total

获取特定级别的目录大小

默认情况下,du命令以递归方式工作,列出并添加指定目录的所有子文件和文件夹大小。但是–max depth选项可用于指定要列出的目录的级别。例如–max depth=1用于列出目录的第一级大小。

du -h --max-depth=1 /home/ismail

输出如下。

91M    /home/ismail/.cache 452K    /home/ismail/Pictures 4,0K    /home/ismail/data2 31M    /home/ismail/.mozilla 4,0K    /home/ismail/data4 4,0K    /home/ismail/Desktop 4,0K    /home/ismail/Videos 4,0K    /home/ismail/Downloads 7,1M    /home/ismail/.oh-my-zsh 4,0K    /home/ismail/data5 4,0K    /home/ismail/thinclient_drives 4,0K    /home/ismail/Documents 4,0K    /home/ismail/data1 348K    /home/ismail/.config 20K    /home/ismail/.ssh 4,0K    /home/ismail/Music 46M    /home/ismail/.local 4,0K    /home/ismail/data3 20K    /home/ismail/Templates 16K    /home/ismail/.gnupg 8,0K    /home/ismail/year 4,0K    /home/ismail/Public 4,0K    /home/ismail/myfolder 185M    /home/ismail

按目录大小排序

目录大小的另一个流行用例是根据目录大小对其进行排序。默认情况下,目录和大小按其名称的字母顺序列出。但是我们可以使用sort命令根据目录的大小对其进行排序。

du -ch /home/ismail/* | sort -rh

输出如下。

11M    total 11M    /home/ismail/nmap-7.91.tar.bz2 452K    /home/ismail/Pictures 20K    /home/ismail/Templates 8,0K    /home/ismail/year 4,0K    /home/ismail/year/2020 4,0K    /home/ismail/Videos 4,0K    /home/ismail/userinput.py 4,0K    /home/ismail/thinclient_drives 4,0K    /home/ismail/test 4,0K    /home/ismail/sample.txt 4,0K    /home/ismail/read_line_by_line.sh 4,0K    /home/ismail/Public 4,0K    /home/ismail/names.txt 4,0K    /home/ismail/myfolder 4,0K    /home/ismail/Music 4,0K    /home/ismail/Downloads 4,0K    /home/ismail/Documents 4,0K    /home/ismail/Desktop 4,0K    /home/ismail/data5 4,0K    /home/ismail/data4 4,0K    /home/ismail/data3 4,0K    /home/ismail/data2 4,0K    /home/ismail/data1 0    /home/ismail/text.txt 0    /home/ismail/newfile 0    /home/ismail/mylink 0    /home/ismail/myfile 0    /home/ismail/file4 0    /home/ismail/file3 0    /home/ismail/file2 0    /home/ismail/file1

du:无法读取目录“…”:权限被拒绝错误

在使用du命令时,我们可能会得到“ du:无法读取目录“…”:权限被拒绝 “错误。此错误原因是当前用户权限不足以读取提供的目录。这些目录通常由root用户拥有,或者root用户或sudo用户可以读取这些目录。因此,只要提供sudo命令就可以解决这个错误。

du: cannot read directory '/var/lib/sss/keytabs': Permission denieddu: cannot read directory '/var/lib/sss/secrets': Permission denieddu: cannot read directory '/var/lib/mysql-keyring': Permission denieddu: cannot read directory '/var/log/private': Permission denieddu: cannot read directory '/var/log/gdm3': Permission denieddu: cannot read directory '/var/log/sssd': Permission denieddu: cannot read directory '/var/log/speech-dispatcher': Permission denieddu: cannot read directory '/var/spool/cron/crontabs': Permission denieddu: cannot read directory '/var/spool/rsyslog': Permission denieddu: cannot read directory '/var/spool/cups': Permission denied3,4G    total1,7G    /var/log1,4G    /var/lib345M    /var/cache5,2M    /var/backups1,4M    /var/snap48K    /var/spool

用下面的sudo命令解决这个错误。

sudo du -csh /var/* | sort -rh

使用文件管理器(GUI)获取目录大小

文件管理器是管理文件和目录的GUI工具。文件管理器还可以用来获取目录大小。首先打开文件管理器 右击 在你想要得到大小的目录上。选择 属性 就像下面一样。

图片[2]-在Linux中如何获得目录/文件夹的大小?-yiteyi-C++库
使用文件管理器(GUI)获取目录大小

下面的目录属性屏幕提供有关目录的信息。目录的大小也列在 目录 列出目录的内容计数和总大小的行。

图片[3]-在Linux中如何获得目录/文件夹的大小?-yiteyi-C++库
目录大小

相关文章: Linux中的Windows ipconfig等效程序

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享