我的目录里充满了很多文件。我想知道它们是什么类型的以及它们的数量如此之多。
以下是我尝试一些命令时发生的事件:
ls -l | wc -l
1514340
ls | head -n 4
2004112700001.htm
2004112700002.htm
2004112700003.htm
2004112700004.htm
ls *.xml | head -n 4
20041127.xml
20041225.xml
20050101.xml
20050108.xml
ls -l *.htm | wc -l
bash: /bin/ls: Liste d'arguments trop longue
0
# Any other kind of ls command with *.htm, *.* is failing too.
我知道wc -l
必须等待输出ls -l *.htm
完全完成才能开始分析它。因为输出太大,所以失败了。
真的是这样吗?
在这种情况下,使ls
命令与 结合使用的好方法是什么wc -l
?有没有办法wc
在输出完全完成之前要求命令异步启动?
答案1
当您尝试使用 rm * 删除目录中的数百万个文件时,也会出现同样的问题。我认为系统正在用它找到的所有文件名“扩展”你的命令......并且负担不起。
我建议使用“查找”来代替,例如
find . -mindepth 1 -maxdepth 1 -name "*.html" | wc -l