计算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.