з огляду на таку структуру:
oz123@debian:~/ $ tree .
.
├── a
│ ├── a1
│ ├── a2
│ └── a3
├── a1
│ ├── a11
│ ├── a12
│ └── a31
├── b
│ └── b1
│ ├── b11
│ │ └── b21
│ │ └── b31
│ ├── b12
│ └── b3
└── c
16 directories, 0 files
Як знайти всі кінцеві вузли?
Я знайшов такі рішення, які здаються хорошими, але я маю довести, що не існує тестового випадку, який би його вийшов з ладу.
Сторінка довідки про -links
штати:
Ви також можете шукати файли, які мають певну кількість посилань, з '-посиланнями'. Каталоги зазвичай мають принаймні два жорстких посилання; їх. запис - другий. Якщо вони мають підкаталоги, кожен з них також має жорстке посилання, яке називається .. на його батьківський каталог. The. і .. записи в каталозі зазвичай не шукаються, якщо вони не вказані в командному рядку find.
можливе рішення:
oz123@debian:~/ $ find . -type d -links 2
./a/a2
./a/a3
./a/a1
./c
./a1/a31
./a1/a11
./a1/a12
./b/b1/b12
./b/b1/b3
./b/b1/b11/b21/b31
- Хтось може запропонувати краще рішення (не використовуючи труби та сед, це було чудово ...)
- Чи буде працювати в будь-якій файловій системі?
-links 2
хитрість. Це не буде працюватиbtrfs
.