2015-07-11 101 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 {} \;

它的工作原理是因爲在葉子目錄中,返回的唯一目錄是'。'