查找当前目录和子目录INCLUDING当前目录中的常规文件和目录的数量

时间:2016-08-30 21:06:25

标签: linux unix directory find wc

问题在标题中,

显然,我知道我所要求的只是等于: 1 + 找 。 -type f | wc -l <​​/ p>

所以我的问题是如何将两者结合起来?

非常感谢提前!!

最诚挚的问候,

1 个答案:

答案 0 :(得分:1)

您的问题是“查找常规文件和目录的数量”,因此仅使用-type f不正确,因为它只能找到常规文件,而不是目录。您需要找到两种类型:-type f -o -type d

另一个细节。 find也会找到当前目录,它会将其显示为第一个结果,因此您无需执行+1。它已经包括在内了!

还可以使用-prune跳过以.(隐藏)开头的文件和目录。在这种情况下,-o print是必要的。由于我们不希望文件或目录以.开头,因此我们无法使用.作为搜索路径,否则我们将跳过所有内容,因为所有结果都将以.开头。请改用$PWD

find $PWD \( -type f -or -type d \) -name ".*" -prune -o -print | wc -l

请注意,这将排除隐藏目录中包含的所有文件和目录,即使这些文件和目录未被隐藏。例如,像这样的文件将被排除:

/my/path/.hidden_dir/not_hidden_file