ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

linux – “ls |的结果” wc -l“与实际文件数不匹配

2019-08-14 05:51:24  阅读:12  来源: 互联网

标签:wc linux command-line ls files



参见英文答案 > How to use wc and piping to find how many files and directories are in a certain directory?                                    4个
我需要计算文件夹下的文件数,并使用以下命令.

cd testfolder
bash-4.1$ls | wc -l
6

实际上,此文件夹下只有五个文件,

bash-4.1$ls
total 44
-rw-r--r-- 1 comp 11595 Sep  4 22:51 30.xls.txt
-rw-r--r-- 1 comp 14492 Sep  4 22:51 A.pdf.txt
-rw-r--r-- 1 comp  8160 Sep  4 22:51 comparison.docx.txt
-rw-r--r-- 1 comp   903 Sep  4 22:51 Survey.pdf.txt
-rw-r--r-- 1 comp  1206 Sep  4 22:51 Steam Table.xls.txt

它看起来像ls | wc -l甚至将总数44计为文件,这是不正确的.

解决方法:

wc是char,word和行计数器,而不是文件计数器.

作为程序员/脚本编写者,您负责使其计算您想要的数量并相应地调整计算.

在您的情况下,您可以执行以下操作:

echo $((`ls|wc -l`-1))

最后请注意,你的ls可能是一个别名,因为它给出了一个很长的列表,这不是没有参数的普通ls.因此,引用ls的完整路径(通常是/ bin / ls)以避免混淆可能是个好主意.



标签:wc,linux,command-line,ls,files

专注分享技术,共同学习,共同进步。

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有