Я впервые вижу поиск с использованием inode. Когда вам нужно искать по иноду?
Корен
@Coren - обычно используется, если у вас есть файл, скажем, «-» впереди. Вы можете выполнить ls -li, чтобы найти его инод, а затем: find. -inum <inode> -exec rm -i {} \; Это подход пояса и браслетов, чтобы гарантировать, что вы можете удалить файл. Конечно, вы также можете использовать «rm -filename» или «rm ./-filename» или «rm -filename».
швейцарский
2
@Coren с selinux, сообщения журнала включают в себя индекс, но не полный путь. Таким образом, вы должны искать индекс, чтобы найти файл, на который ссылаются. (в любом случае это мой вариант использования)
Патрик
1
@Coren Например, когда файл имеет несколько жестких ссылок, вы заметили, что содержимое устарело, и хотите удалить файл, но вы нашли только одно имя файла и хотите удалить остальные.
Жиль "ТАК - перестань быть злым"
2
Просто используйте find / -inum <inode>. Он гораздо более переносим, чем debugfsи работает гораздо надежнее (он может находить пути, которые не принадлежат файлам на жестком диске, например, устройствам).
7heo.tk
Ответы:
33
Для файловой системы ext4 вы можете использовать debugfsкак в следующем примере:
Вероятно, мне следовало указать тип файловой системы. Мне не приходило в голову, что метод выполнения этих вещей будет различным для разных файловых систем. Я использую XFS, поэтому, хотя я уверен, что ваш ответ правильный, он мне не поможет.
inode-resolve [-v] <ino> <path>
(needs root privileges)
resolve paths to all files with given inode number ino in a given
subvolume at path, ie. all hardlinks
Options
-v
verbose mode, print count of returned paths and ioctl()
return value
Вы можете посмотреть на команду fsdb, найденную в большинстве Unices и доступную где-то для Linux, я уверен. Это мощная команда, позволяющая получить доступ к внутренней структуре файлов inode, поэтому будьте осторожны. Синтаксис также очень лаконичен.
Хотя FSDB не будет на самом деле позволит вам открыть имя файла инода, это делает позволяет получить прямой доступ к иноду при указании его, в сущности , «перенос» Вам сам (или по крайней мере это блок данных указатели) файл , так это быстрее в этом отношении, чем найти ;-).
Ваш вопрос не указывает, что вы хотите сделать с файлом. Вы можете расшифровать файловые дескрипторы NFS?
Ну, я не думал, что то, что я собираюсь делать с информацией, имеет отношение к моему вопросу, поэтому я оставил ее. В моем случае это был просто вопрос любопытства; моя дефрагментация xfs_fsr выплевывает, какие inodes это дефрагментирует, и один был чрезвычайно фрагментирован (более 5000 экстентов), и мне было просто интересно, какой это файл findработает, это просто так медленно.
Алекс
Я пытаюсь решить проблему, когда мой rhel vm выполняет полный (20 минут!) Fsck при каждой загрузке, и все, что мне нужно, - это номер инода, указанный в / var / opt / messages как ошибочный. (Сказав это, найти -inum на самом деле не нашел)
find / -inum <inode>
. Он гораздо более переносим, чемdebugfs
и работает гораздо надежнее (он может находить пути, которые не принадлежат файлам на жестком диске, например, устройствам).Ответы:
Для файловой системы ext4 вы можете использовать
debugfs
как в следующем примере:Ответ не является немедленным, но, кажется, лучше, чем
find
.Полученный вывод может быть легко проанализирован для получения имени файла.
источник
Btrfs
man btrfs-inspect-internal
говорит:Пример:
sudo btrfs inspect-internal inode-resolve 15380 /home
источник
Вы можете посмотреть на команду fsdb, найденную в большинстве Unices и доступную где-то для Linux, я уверен. Это мощная команда, позволяющая получить доступ к внутренней структуре файлов inode, поэтому будьте осторожны. Синтаксис также очень лаконичен.
fsdb для AIX
Файл повторной ссылки fsdb в Solaris
Хотя FSDB не будет на самом деле позволит вам открыть имя файла инода, это делает позволяет получить прямой доступ к иноду при указании его, в сущности , «перенос» Вам сам (или по крайней мере это блок данных указатели) файл , так это быстрее в этом отношении, чем найти ;-).
Ваш вопрос не указывает, что вы хотите сделать с файлом. Вы можете расшифровать файловые дескрипторы NFS?
Совет Безопасности ООН
источник
find
работает, это просто так медленно.