首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加速查找命令

加速查找命令
EN

Stack Overflow用户
提问于 2018-12-10 14:58:20
回答 2查看 47关注 0票数 0

我正在使用相同的find命令获取文件数和find大小,但当前正在运行find两次,如下所示。如何在一行中执行两个操作,并消除一次查找?

代码语言:javascript
复制
file_cnt[$i]=$(find $dir_name -type f -ctime +$ctime1 -ctime -$ctime2 | wc -l)
file_size[$i]=$(find $dir_name -type f -ctime +$ctime1 -ctime -$ctime2 | xargs --no-run-if-empty --max-procs=2 du -s | awk '{sum += $1} ; END {printf "%.2f", sum/1024**2}')
EN

回答 2

Stack Overflow用户

发布于 2018-12-10 21:42:08

试试这样的东西

代码语言:javascript
复制
read "file_cnt[$i]" "file_size[$i]" << EOF
$(find $dir_name -type f -ctime +$ctime1 -ctime -$ctime2 | xargs --no-run-if-empty --max-procs=2 du -s | awk '{count++;sum += $1} ; END {printf "%d %.2f", count, sum/1024**2}')
EOF
票数 0
EN

Stack Overflow用户

发布于 2019-01-09 18:31:18

我建议使用find来返回文件大小,使用awk来计算总和和文件数量:

代码语言:javascript
复制
$ find $dir_name -type f -ctime +$ctime1 -ctime -$ctime2 -printf "%s\n" | awk '{s+=$1}{print NR,s}'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53700862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档