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

Кажется, что он не работает и производит пустой вывод, может быть, потому что я пытаюсь сделать это на диске NTFS formate? В моем домашнем томе это работает.Поиск каталогов листьев в linux

Кроме того, как ни странно, кажется, что все виды дисков только выводятся . до ls -dA и find . -type d -links 1 выходят все каталоги.

Разбивается ли 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 $ (найти «$ 0» -maxdepth 1-тип d | wc -l) -eq 1' {} \; -exec whatever_you_want_here {} \;

это работает, потому что в листовой директории возвращается только каталог.

Смежные вопросы