问题在标题中,
显然,我知道我所要求的只是等于: 1 + 找 。 -type f | wc -l </ p>
所以我的问题是如何将两者结合起来?
非常感谢提前!!
最诚挚的问候,
答案 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