find . -type d -links 2
似乎不起作用,并产生空输出,可能是因为我试图在NTFS格式化光盘上进行此操作?在我的家庭卷上它可以工作。
此外,有趣的是,似乎各种dirs只输出.
到ls -dA
和find . -type d -links 1
输出所有目录。
NTFS刚刚在Linux上崩溃了吗?
答案 0 :(得分:0)
您的命令find . -type d -links 2
会查找包含两个硬链接的目录。
在Windows according to Microsoft上,使用CreateHardLink函数创建硬链接。此外,according to Microsoft,该功能不支持目录,只有文件:
在现有文件和新文件之间建立硬链接。这个 函数仅在NTFS文件系统上受支持,且仅适用于 文件,而不是目录。
换句话说,find . -type d -links 2
在NTFS上没有返回目录的原因是NTFS上没有硬链接目录。如果需要硬链接目录,则需要不同的文件系统。
因此,如果尝试在NTFS文件系统上硬链接目录,ln
将报告错误,那就不足为奇了:
$ ln dir1 dir2
ln: ‘dir1’: hard link not allowed for directory
NTFS支持硬链接文件,find . -type f -links 2
将为您提供包含两个链接的文件列表。
答案 1 :(得分:0)
我实际上发现了一个讨厌的替代方案,以防有人对linux中的NTFS分区有同样的问题:
找到。 -type d -exec sh -c' test $(查找" $ 0" -maxdepth 1-type d | wc -l)-eq 1' {} \; -exec whatever_you_want_here {} \;它可以解决,因为在叶子目录中,唯一返回的目录是'。'