如何制作一个脚本来查找主目录中不到 3 天的每个文件,然后获取所有这些文件中的字符总数?
答案1
答案2
这很简单:
find ~/ -mtime -3 -exec cat {} + | wc -c
上面的发送对每个文件中的每个字符进行计数wc
。
如果文件很大,上述操作将涉及大量从磁盘读取。如果简单地添加文件的大小会更有效。获取文件大小的方法因 Unix 版本而异。但是,如果您的系统支持 Linux 风格的stat
命令,则以下命令将起作用:
find . -mtime -3 -type f -exec stat -c%s {} + | awk '{total+=$1} END{print total}'
在上面,stat -c%s
返回每个文件的大小并将awk
它们相加并报告总数。这样就无需完整读取每个文件。
答案3
尝试这个
find ./ -type f -mtime -3 -exec wc -c {} \; | perl -lane 'BEGIN {$total=0}; $total+=$F[0]; END {print $total}'
例子
❮njia@mb-125:~/src/ansible/roles❯➤ find ./ -type f -mtime -3 -exec wc -c {} \;
12288 ./base/tasks/.check_glibc.yml.swp
185 ./base/tasks/check_glibc.yml
❮njia@mb-125:~/src/ansible/roles❯➤ find ./ -type f -mtime -3 -exec wc -c {} \; | perl -lane 'BEGIN {$total=0}; $total+=$F[0]; END {print $total}'
12473