以下是当天的文件。前几天的文件被系统转换为.gz。我想查找最近几天特定 .gz 文件的总数。我尝试了下面的命令,它给了我错误。请推荐
bash-3.2$ ls -lrth|tail
299K Mar 23 2017 N08170323091903766
333K Mar 23 2017 N08170323091903771
328K Mar 23 2017 N09170323091903776
367K Mar 23 2017 N09170323091903782
347K Mar 23 2017 N04170323092003784
368K Mar 23 2017 N08170323092003783
***bash-3.2$ ls -lrth N08170322*|wc -l***
bash: /usr/bin/ls: Arg list too long
0
***bash-3.2$ zcat N08170322*.gz|wc -l***
bash: /usr/bin/zcat: Arg list too long
0
最佳答案
发生这种情况是因为目录中的文件太多。
您可以轻松解决第一个问题:
ls | grep -c N08170322
或者,更准确地说:
ls | grep -c '^N08170322'
会给你文件列表。然而,更好的方法是:
find . -name "N08170322*" -exec ls {} + | wc -l
这将解决ls parsing @hek2mgl 的评论中提到的问题。
如果您确实想一次统计所有压缩文件的行数,您可以这样做:
find . -name "N08170322*" -exec zcat {} + | wc -l
<小时/>
另请参阅:
关于linux - 检查目录中是否存在大量 .gz 文件的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42966917/