使用ls -l显示目录时,它们的链接数(输出中的第二个字段)至less有两个:一个用于目录名,一个用于.
$ mkdir foo $ ls -l total 2 drwxr-xr-x 2 user wheel 512 4 oct 14:02 foo
总是假定以上链接的数量2对应于此目录中的子目录数( ..链接)是否安全?
虽然通常只能使用符号链接到目录,这不会影响链接数量,但在某些情况下,目录可能使用硬链接(IIRC OSX的TimeMachinefunction使用此类链接),因此可能无法保证。
你会更安全的使用ls和grep (或者可能find )来扫描wc命令来计算实际存在的子目录的数量,而不是从当前目录中猜测链接数量。
你是正确的观察所有目录包含。 和..,所以如果你从输出中减去两个
ls -la | grep '^d' | wc -l
你应该获得当前工作目录中的目录数量。
这并不能回答你关于ls -l的问题,但是我使用了tree -d,它的工作原理非常好。
我会用find
find ./foo -type d | wc -l
最终用-maxdepth选项