我正在尝试计算在包含 500K 文件的目录下递归有多少个文件和文件夹find
(注意:递归地和在下面)。我正在使用以下命令:
find my_folder -name '*' -print | wc -l
但在运行第一部分时我注意到一些奇怪的事情:
find my_folder -name '*' -print
my_folder
它总是在第一行首先打印文件夹名称(在本例中)。这在我的第一个命令中将文件计数增加了一个
这是为什么?我怎样才能避免这种情况并确保 find 只打印下面的内容my_folder
?
答案1
它与目标目录匹配,因为模式*
与.
.既然你正在寻找文件,您应该添加-type f
, 以仅匹配文件。
find my_folder -type f
如果有GNU find
,您还可以使用-mindepth 1
来阻止.
匹配。
find my_folder -mindepth 1
答案2
如果你真的只想要文件,你可以使用-type f
.-mindepth 1
会阻止仅匹配命令行上给出的目录。