Eug*_*ash 8 filesystems hard-link
使用 显示目录时ls -l,它们的链接数(输出中的第二个字段)至少为两个:一个用于目录名称,一个用于.
$ mkdir foo
$ ls -l
total 2
drwxr-xr-x 2 user wheel 512 4 oct 14:02 foo
Run Code Online (Sandbox Code Playgroud)
始终假设 2 以上的链接数与此目录(..链接)中的子目录数相对应是否安全?
这是通常在UNIX系统诚然,链接到一个目录的数量是子目录的数目加2。然而,有这样的情况,这是不正确的:
一些 unice 允许硬链接到目录。那么就会出现2个以上不对应子目录的链接。
有些文件系统的目录没有.和 的条目..。在GNU发现手册中提到在讨论一些例子-noleaf选项(禁用假设优化.和..存在于所有目录):“CD-ROM或MS-DOS文件系统或AFS卷装入点”
计算子目录数量的一种几乎可靠的方法(如果文件名包含换行符,它仍然可能失败)是
$(($(LC_ALL=C ls -la /path/to/directory | grep '^d' | wc -l) - 2)
Run Code Online (Sandbox Code Playgroud)
更可靠的方法是使用 shell globs*/和.*/; 像往常一样处理模式不匹配的情况有点痛苦(除了在 bash 和 zsh 中,您可以打开该nullglob选项)。
| 归档时间: |
|
| 查看次数: |
7442 次 |
| 最近记录: |