Уменя есть файл с именем/etc/passwd, и я хотел бы найти все жесткие ссылки на этот файл в каталоге. Как узнать все жесткие ссылки в каталоге /etc/passwd  и /backups/? Как найти все жесткие ссылки на данный файл с помощью командной строки Linux или Unix?

Вы можете использовать команду find в Linux, Apple MacOS, FreeBSD и в других операционных системах, чтобы найти все жесткие ссылки.

 Как найти все жесткие ссылки на данный файл

Жесткая ссылка — это не что иное, как конкретное местоположение физических данных. Вы задаете разные имена, относящиеся к одному и тому же файлу. Файл относится к inode, что и имя. Жесткие ссылки на файл foo можно создать следующим образом:

В приведенном выше примере bar и foobar становятся другим именем файла foo. Синтаксис следующий, чтобы найти все жесткие ссылки для файла foo в текущем каталоге:

Примеры

Если файл с именем /etc/passswd и вам нужно получить все жесткие ссылки, которые существуют в каталоге/backups/, запустите:

Пример результата:

Если вы не хотите искать каталоги на других файловых системах, таких как смонтированные, попробуйте:

НАЙТИ И УДАЛИТЬ ВСЕ ЖЕСТКИЕ ССЫЛКИ НА ФАЙЛ С ИМЕНЕМ FOO в /TMP/

Введите следующую команду:

Пример результата:

Справка, параметр -samefile не поддерживается командой find

Определить номер inode файла, введите:

Пример резульатат:

Первый столбец в приведенном выше примере отображает индекс inode # 4065089. Теперь альтернативный синтаксис выглядит следующим образом, чтобы найти все жесткие ссылки для файла с именем /tmp/demo.txt, используя inode # 4065089:

Пример  результата:

Чтобы найти и удалить все жесткие ссылки на файл по номеру inode # 4065089, запустите:

Вот мой пример:

поиск и удаление жестких ссылок

Круглосуточная поддержка Linux/Unix серверов, office@itfb.com.ua