linux统计某个特定文件名的大小总和【原创】

本文介绍如何在Linux环境中使用find、du等命令结合管道操作统计特定文件的大小,并通过bc或let命令将KB单位转换为更直观的GB单位。

 

[hch@EAISRVBJ2 log]$find ./ -name "test_chs_00*"|xargs du -ck|grep total|awk 'BEGIN{sum=0}{sum+=$1}END{print sum}'
315590856

参数说明
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-k或--kilobytes 以KB(1024bytes)为单位输出

转换的结果为KB,将其转换为G。用bc计算

[hch@EAISRVBJ2 log]$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
315590856/1024/1024
300
quit

转换结果为300G

 

 如果没有安装bc,用let计算

[hch@EAISRVBJ2 log]$var1=`find ./ -name "EAIObjMgr_chs_00*"|xargs du -ck|grep total|awk 'BEGIN{sum=0}{sum+=$1}END{print sum}'`
[hch@EAISRVBJ2 log]$ let "var=$var1/1024/1024"
[hch@EAISRVBJ2 log]$ echo $var
299

写在一起执行如下:
var1=`find ./ -name "EAIObjMgr_chs_00*"|xargs du -ck|grep total|awk 'BEGIN{sum=0}{sum+=$1}END{print sum}'` && let "var=$var1/1024/1024" && echo $var"G"

 

 

转载请注明出处

 

<think>好的,我现在需要回答用户关于如何在Linux中查看文件夹下所有PDF文件大小的命令的问题。首先,用户明确提到了要检查PDF文件的大小,所以我要找出合适的命令来实现这个需求。 根据已有的知识,Linux中有很多命令可以查看文件大小,比如`du`、`ls`、`find`等。用户的需求是特定于PDF文件的,所以可能需要结合这些命令来过滤出PDF文件,并显示它们的大小。 首先,我记得`du`命令是用来估计文件和目录的磁盘使用情况的,用户引用[2]中提到过这个命令的基本用途。但`du`默认显示目录的总大小,如果直接使用`du *.pdf`可能会得到每个PDF文件的大小,不过这可能只适用于当前目录,并且不包括子目录中的文件。用户可能需要递归查找子目录中的PDF文件,这时候可能需要结合`find`命令。 另外,`ls`命令可以列出文件及其详细信息,包括大小。使用`ls -l`可以显示文件的详细信息,然后通过`grep`过滤出PDF文件。不过`ls -l`可能会包含目录信息,需要确保只列出文件,用户引用[3]中提到用`ls -p`并在管道中使用`grep -v /`来排除目录,这可能对当前目录有效,但如果是递归查找的话可能需要不同的处理。 接下来,考虑使用`find`命令来递归查找所有PDF文件,然后结合`du`或`ls`来显示它们的大小。例如,`find . -name "*.pdf" -exec ls -l {} \;`会找到所有PDF文件并执行`ls -l`显示详细信息,其中包含文件大小。不过这样的输出可能比较冗长,用户可能需要更简洁的显示方式。 另外,用户引用[2]中提到了`du`命令,所以可能需要使用`du -h`来以人类可读的格式(如KB、MB)显示大小。结合`find`的话,可以写成`find . -name "*.pdf" -exec du -h {} \;`,这会递归查找并显示每个PDF文件的大小。 还有一种方法是使用`find`结合`ls`,例如`find . -name "*.pdf" -ls`,这会列出每个找到的PDF文件的详细信息,包括大小。不过输出可能不够简洁,用户可能需要更直接的命令。 此外,如果用户只需要当前目录下的PDF文件,而不包括子目录,可以使用`ls -l *.pdf`,但需要注意如果文件很多可能会有参数列表过长的问题,这时可以改用`find . -maxdepth 1 -name "*.pdf" -exec ls -l {} \;`来限制查找深度为1。 另外,用户可能需要总计所有PDF文件的总大小,这时候可以结合`du`和`awk`来计算总和。例如:`find . -name "*.pdf" -exec du -ch {} + | grep total`,这样会显示所有找到的PDF文件的总大小。 总结一下,可能的命令有: 1. 使用`du`和`find`结合递归查找并显示大小: ```bash find . -name "*.pdf" -exec du -h {} \; ``` 2. 使用`ls`和`find`结合显示详细信息: ```bash find . -name "*.pdf" -exec ls -l {} \; ``` 3. 仅当前目录下的PDF文件: ```bash ls -l *.pdf ``` 4. 显示总大小: ```bash find . -name "*.pdf" -exec du -ch {} + | grep total ``` 还需要考虑命令的可读性和用户友好性,使用`-h`选项可以让大小以更易读的单位显示。此外,可能需要解释每个命令的作用,以便用户选择最适合他们需求的方法。</think>在Linux中查看文件夹下所有PDF文件大小的常用命令及方法如下: --- ### 1. **递归查找并显示所有PDF文件大小** ```bash find /path/to/folder -name "*.pdf" -exec du -h {} \; ``` - **说明**:递归搜索指定目录(替换`/path/to/folder`)及其子目录中的所有PDF文件,并以人类可读格式(如KB、MB)显示每个文件的大小[^2]。 --- ### 2. **仅显示当前目录下的PDF文件大小** ```bash ls -lh *.pdf ``` - **说明**:列出当前目录下所有PDF文件的详细信息,包括大小、修改时间等。`-h`选项使大小以易读单位显示。 --- ### 3. **统计所有PDF文件的总大小** ```bash find /path/to/folder -name "*.pdf" -exec du -ch {} + | grep total ``` - **说明**:递归计算所有PDF文件的总大小,并在最后一行显示`total`值。 --- ### 4. **显示PDF文件的详细属性(含路径和大小)** ```bash find /path/to/folder -name "*.pdf" -ls | awk '{print $7, $11}' ``` - **说明**:通过`-ls`输出完整属性,`awk`提取文件大小(第7列)和路径(第11列)。 --- ### 5. **仅筛选出PDF文件名大小(无递归)** ```bash ls -l | grep '.pdf' | awk '{print $9, $5}' ``` - **说明**:列出当前目录下的PDF文件名及其字节大小。若需递归,可结合`find`命令。 --- ### 参数说明 - `find`:递归搜索文件[^3]。 - `du -h`:以易读格式显示文件/目录大小。 - `ls -l`:显示文件详细信息。 - `grep`:过滤输出内容。 - `awk`:文本处理工具,用于提取特定列。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值