计算Linux目录中文件的数量?[关闭]


332

为了计算目录中的文件数,我通常使用

ls directory | wc -l

但是还有另一个不使用的命令wc吗?


16
到底是什么问题wc导致您无法使用它?
vanza 2014年

5
并不是的。通常以这种方式使用Unix命令,这些命令链接在管道中。
Michael Berkowski 2014年

2
我通过ssh连接到另一台主机以访问一些数据。不幸的是,一堆基本命令似乎在这个主机上不起作用。如果我使用wc,它将返回“无法识别的命令”。所以我在寻找其他选择。
Kantura 2014年

7
使用tree命令。它将为您提供树状结构,并在底部告诉您有多少个文件和目录。如果要隐藏文件,也可以使用tree -a
伊利亚·林恩

5
@vanza“ wc到底是什么问题 ”,如果\n文件名中有文件怎么办?是的,不可能!但在技术上仍然有效且可行。
JamesThomasMoon1979

Answers:


523

这是一:

ls -l . | egrep -c '^-'

注意:

ls -1 | wc -l

这意味着:: ls在目录中列出文件

-1:(即一个),每行只有一个条目。如果您也想要隐藏文件,请将其更改为-1a

|:管道输出到...

wc: “字数”

-l:计算lines。


1
不用等了。我做了个嘘声。您绝对正确Sajad Lfc。ls -1目录| egrep -c''这将返回dir中的文件数。谢谢 。
Kantura

1
@SajadKaruthedath ls -l . | egrep -c '^-'不计算隐藏文件。我建议在中添加-a标志ls
JamesThomasMoon1979

1
@ JamesThomasMoon1979:请检查我的描述
萨贾德Karuthedath

1
当文件夹中没有文件时,这将显示错误。使用ls -1 /dir 2>/dev/null | wc -l。这里从LS的输出被引导到/ dev / null,并且结果是一个干净的零
Sathish所在

6
@runios,这是因为ls -l在顶部返回了另一行,总计了文件大小。您应该使用ls -1而不是ls -l。另外,如果有人想要隐藏文件但没有目录,...您应该使用ls -1A | wc -l
Daniel Biegler,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.