使用unix计算文件数

时间:2014-02-19 15:29:06

标签: bash

如何在大型机环境中使用unix计算服务器目录中存在的文件数。我尝试了以下命令,但它在底部提到了错误:

cd“/ Deepak / dir”

ls -1 | wc -l
ls -l . | egrep -c '^-'
ls -cf    

尝试第一个命令后,我得到的错误信息是: 不能ls:“/ Deepak / dir / |”没找到。

我不知道为什么管道显示在这里。我认为这就是原因,错误是说目录未找到“/ Deepak / dir / |”和“/ Deepak / dir /”不一样。

4 个答案:

答案 0 :(得分:2)

怎么样:

ls -1 | wc -l

这似乎对我有用。

答案 1 :(得分:1)

ls | wc -l也可以正常工作

答案 2 :(得分:0)

如果您只想在要检查的目录中计算文件而不是(子)目录,请使用以下代替ls -1

find yourdirname -maxdepth 1 -type f | wc -l

-maxdepth仅将find限制为您的域名,-type f仅在搜索时考虑文件。

答案 3 :(得分:0)

如果您只想要文件而且您只想在其名称中使用换行符计算一次,那么这应该是一种相当安全的方法:

i=0
while read -d ''; do
    ((i++))
done < <( find /Deepak/dir -maxdepth 1 -type f -print0 )
echo $i

警告:在大多数发行版中找到的find的GNU版本与 find略有不同,这可能更有可能在“{3}} find中找到Unix的”。以上版本适用于我的两个版本(例如在Linux和OSX上)。但是,您的可能还有另一个版本的{{1}}。