如何在find命令别名中添加prmtop类文件的总数统计功能?
实现文件总数统计的两种方法
假设你的find_prmtop别名对应的基础命令是用find配合du输出文件路径和大小,以下两种方法可以快速添加总数统计:
方法一:用awk一步完成输出与计数
直接把原命令的输出通过管道传给awk,在打印每一行结果的同时统计行数,最后输出总数:
find_prmtop() { find . -maxdepth 100 -mindepth 1 \( -name "*.parmtop" -o -name "*.parm7" \) -exec du -k {} \; | awk '{print; count++} END {print "检测到的文件总数为:" count}' }
把这段函数加到你的shell配置文件(比如~/.bashrc或~/.zshrc)里,然后重新加载配置(source ~/.bashrc),之后执行find_prmtop就能看到带总数的输出了。
方法二:用临时文件保存结果再统计
如果需要保留输出的原始内容(比如后续要复用),可以用临时文件先存结果,再统计行数:
find_prmtop() { # 创建临时文件 local temp=$(mktemp) # 执行原查找命令并保存结果 find . -maxdepth 100 -mindepth 1 \( -name "*.parmtop" -o -name "*.parm7" \) -exec du -k {} \; > "$temp" # 打印结果 cat "$temp" # 统计行数并输出总数 echo "检测到的文件总数为:$(wc -l < "$temp")" # 删除临时文件 rm "$temp" }
同样把这段函数替换原来的别名配置,加载后即可使用。
说明
- 两种方法都能准确统计符合条件的文件数量,awk方法更简洁高效,临时文件方法适合需要对输出做额外处理的场景。
- 如果你原来的
find命令有其他参数(比如过滤目录),只需把对应部分替换到上述代码的find命令里即可。
内容的提问来源于stack exchange,提问作者James Starlight
相关产品推荐
相关产品推荐

