Попробуйте это
compgen -A function -abck | awk 'length($0) == 3'
(редактирование: это - встроенный удар, таким образом, необходимо выполнить его в ударе, и это сразу даст Вам список 3 символьных команд),
Каталоги в ext4 файловых системах обычно имеют по крайней мере 2 ссылки. Запись в их родительском каталоге и .
запись в себе. Посмотрите там для получения дополнительной информации.
Однако если файловая система непоследовательна, можно было связать каталог больше чем в одном месте и числе каналов для не отражения его.
Например, с debugfs -w
(на размонтированной фс), можно сделать link a/b c/d
вызвать создание ссылки на каталог. Вы заметите, что число каналов не обновляется (Вам было бы нужно sif a/b links_count 3
обновить его):
$ ls -lid a/b c/d a/b/. c/d/.
12 drwxr-xr-x 2 chazelas chazelas 1024 May 14 08:37 a/b/
12 drwxr-xr-x 2 chazelas chazelas 1024 May 14 08:37 a/b/./
12 drwxr-xr-x 2 chazelas chazelas 1024 May 14 08:37 c/d/
12 drwxr-xr-x 2 chazelas chazelas 1024 May 14 08:37 c/d/./
Число каналов 2 выше, даже при том, что существует 3 ссылки (к a к c, и "." к себе).
Отметьте это fsck
сообщил бы о проблеме с этим:
Pass 2: Checking directory structure
Entry 'd' in /c (1282) is a link to directory /a/b (12).
Clear<y>?
Таким образом, это вряд ли будет Ваш случай здесь, если фс только что прошла fsck.
Для удаления одной из тех ссылок можно использовать debugfs -w
снова (после того, как размонтировал файловую систему) и делают unlink c/d
в нем, или использование fsck
. Если a directory
имеет больше чем одну ссылку, можно проверить ..
запись в нем (с debugfs
ls
) проверять, который является корректным (..
будет иметь то же inode число как его корректный родитель).