使用 unix 计算文件数



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

cd "/Deepak/dir"

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

尝试第一个命令后,我收到的错误消息是:无法 ls:"/Deepak/dir/|" 找不到。

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

怎么样:

ls -1 | wc -l

这似乎对我有用。

ls

| wc -l 也可以正常工作

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

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

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

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

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

警告:在大多数Linux发行版中发现的GNU版本的find与bsd find略有不同,后者可能更有可能在"Unix"中找到。 以上适用于两个版本(例如在 Linux 和 OSX 上)。 但是您的大型机可能还有另一个不同版本的find

相关内容

  • 没有找到相关文章

最新更新