2015-07-11 34 views
0
find . -type d -links 2 

似乎没有工作,并产生空输出,也许是因为我试图在NTFS甲酸盐光盘上做到这一点?在我的家庭卷上它工作。在linux中查找叶目录

另外,有趣的是,似乎所有种类的dirs只输出.ls -dAfind . -type d -links 1输出所有的dirs。

NTFS刚刚破解在Linux上?

回答

0

您的命令find . -type d -links 2查找有两个硬链接的目录。

在Windows上,according to Microsoft,使用CreateHardLink函数创建硬链接。此外,according to Microsoft,该函数的作用支持目录,只有文件:

Establishes a hard link between an existing file and a new file. This function is only supported on the NTFS file system, and only for files, not directories.

换句话说,即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将提供你带有两个链接的文件列表。

0

我居然发现,以防有人讨厌的替代有一个NTFS分区在Linux同样的问题:

发现。 -type d -exec sh -c'test $(find“$ 0”-maxdepth 1 -type d | wc -l)-eq 1'{} \; -exec whatever_you_want_here {} \;

它的工作原理是因为在叶子目录中,返回的唯一目录是'。'