【Linux/Ubuntu】查询文件和文件夹大小

使用命令行工具duls查询文件和文件夹大小

du命令

du命令可以查看文件夹的结构及其大小,可以使用-d参数和-B参数来简单的查询文件/文件夹:
其中-d n代表文件夹的查询深度,n为向内查询几层,一般使用1即可,-B k/m/g代表显示的单位为MB,GB等

>>> du -sh   
> 1.3G     .
#直接输出当前的大小summarized
#也可以在后面加folder du -sh folder1

>>> du -d 1 -B m
#结果显式当前文件夹下的结构和大小
1066M   ./folder1
102M    ./folder2
1M      ./.file1
159M    ./folder3
1326M   .

#也可以使用h参数,human readable来显示
>>> du -d 1 -h
#自动选择单位显示
1.1G    ./folder1
102M    ./folder2
4.0K    ./.file1
159M    ./folder3
1.3G    .
2.ls命令

ls 命令列出当前文件夹的文件,可以使用-l --block-size=m/g-lh参数来实现大小查询:

>>>ls -l --block-size=m *
#当前所有文件用*,并利MB作为单位
#会遍历到一级文件夹内部

>>>ls -l -a --block-size=m 
#列出当前所有的文件
#当前文件夹下

>>>ls -l -h *    #可加上-R选项递归到最深文件
#-h 自动选择单位显示human-readable
# 用*遍历当前文件夹下的一级文件夹
#也可以直接利用file folder 代替*实现特定文件/文件夹的查询
#列出信息较多,并自动选择单位显示大小
#建议使用*的方法,避免只读到指针块的大小

在这里插入图片描述
pic from pexels


ref:
https://www.ibm.com/support/knowledgecenter/ssw_aix_71/com.ibm.aix.cmds2/du.htm
https://unix.stackexchange.com/questions/64148/how-do-i-make-ls-show-file-sizes-in-megabytes
https://www.cyberciti.biz/faq/how-to-see-file-size-on-linux-unix/
https://stackoverflow.com/questions/11720079/how-can-i-see-the-size-of-files-and-directories-in-linux

<think>好的,我现在需要帮用户解决如何在Linux系统中查询文件夹大小的问题。首先,我要回忆一下自己知道的Linux命令,可能涉及到的命令有duls、df等。不过用户明确问的是文件夹大小,所以应该用哪个呢? 首先,ls命令虽然可以列出文件信息,但ls -l显示的是目录本身的大小,而不是目录下所有文件的总大小。例如,用ls -l查看目录时,显示的大小通常是目录元数据的大小,而不是里面所有文件的总。所以用户如果直接用ls可能得不到正确的结果,这时候需要其他命令,比如dudu命令是disk usage的缩写,专门用来查看文件或目录的磁盘使用情况。基本用法可能是du -sh目录名,其中-s表示汇总,-h让结果以人类可读的格式显示(比如K、M、G)。比如du -sh /home/user/Documents,这样就能显示该目录的总大小。这个应该是最常用的方法。 另外,用户可能需要查看目录下各个子目录的大小,这时候可以不加-s,或者用--max-depth参数来限制显示的层级。比如du -h --max-depth=1,可以查看当前目录下一级子目录的大小,方便找出占用空间大的文件夹。 还有ncdu这个工具,它是一个基于ncurses的磁盘使用分析器,可以交互式地浏览目录并查看大小分布。不过这可能不是系统默认安装的,需要用户自己安装。所以虽然好用,但可能不是所有环境都有,所以可能需要先安装。 另外,df命令是查看磁盘分区的整体使用情况,比如df -h可以显示各个挂载点的总空间、已用空间可用空间。但用户的问题是关于特定文件夹大小,所以df可能不太适用,不过有时候结合使用可以帮助了解整体磁盘情况。 还要考虑权限问题,如果用户没有权限访问某些子目录,du命令可能会有权限拒绝的错误,这时候可能需要sudo来提升权限,比如sudo du -sh /var/log。 另外,用户可能想知道命令的具体参数选项,比如du-a参数可以显示每个文件大小,而不仅仅是目录。但这样可能会输出太多信息,所以一般配合-s使用更合适。 需要检查是否有其他方法,比如使用find命令结合du,或者使用图形化工具如baobab,但用户可能只需要命令行方法,所以重点放在duncdu上。 可能用户对命令的选项不太熟悉,比如-s-h的作用,需要解释清楚。同时,提醒用户注意命令执行时间,如果目录很大,du可能需要一些时间来扫描所有文件。 总结下来,最直接有效的方法是使用du -sh命令,推荐使用ncdu作为更直观的工具。同时,可能需要提到权限问题处理大目录时的注意事项。</think>在Linux系统中,查询文件夹大小最常用的命令是$du$(disk usage)[^1],具体方法如下: ### 方法一:基础命令`du` ```bash # 查看当前目录总大小(人类可读格式) $ du -sh # 查看指定目录大小(例如/home目录) $ du -sh /home # 查看目录及其子目录层级大小(显示1级子目录) $ du -h --max-depth=1 ``` - **参数解释**: - `-s`:汇总统计总大小(不显示子目录细节) - `-h`:以K/M/G单位自动转换数值 - `--max-depth=N`:控制显示的子目录层级深度[^3] ### 方法二:交互式工具`ncdu` ```bash # 安装工具(适用于Debian/Ubuntu) $ sudo apt install ncdu # 扫描当前目录 $ ncdu ``` 该工具会显示目录大小分布的可视化界面,支持键盘导航删除操作[^1]。 ### 方法三:结合`find`与`du` ```bash # 统计所有超过100MB的子目录 $ find /path/to/dir -type d -exec du -sh {} + 2>/dev/null | grep -E '[0-9]+[MG]' ``` 相关问题
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值