Как найти, что inode использование числа “находит” команду?

Файл ISO является полным, отформатированным изображением файловой системы. Все cat или dd делает, делают поразрядную копию того изображения файловой системы к Вашим целевым медиа.

Нет никакого волшебства, продолжающегося негласно. Подготовка к файловой системе ISO была сделана заранее (часто специализированным инструментом). Все cat делает, выписывают тот набор байтов. Это не интерпретирует .iso вообще, и при этом это не понимает, что пытается создать загрузочный съемный носитель вообще.
Это действительно требует, чтобы надлежащая поддержка со стороны драйвера ядра и драйвера устройства сделала writes работают над этим медиа. Немного "волшебства" продолжается там, так как записываемые оптические носители не управляют точно тем же путем как стандартные жесткие диски. Но то волшебство не включает интерпретацию содержания файла ISO.

Вы могли смонтироваться .iso файл непосредственно, не записывая его при помощи цикла монтируется (если такая вещь доступна на Вашей ОС). Точно так же можно создать файл, который содержит, например, ext4 файловая система, и Вы могли cat это к разделу.

4
31.01.2013, 02:22
2 ответа

Попытайтесь делать, это (требует cygwin или такой):

find . -type f -name 'test*' -printf '%p %i\n'

Посмотрите

man find | less +/'-printf format'

Примечания:

  • %p обозначает путь к файлу
  • %i обозначает inode число
7
27.01.2020, 20:51
  • 1
    +1 для того, чтобы не проанализировать ls выходной –  a CVn 31.01.2013, 17:02
  • 2
    При использовании системы BSD, GNU find должен быть установлен. Например, в FreeBSD pkg install findutils затем используйте gfind. –  lapo 21.02.2017, 19:49

Существует несколько способов сделать это с находкой.

find . -iname 'test*' -type f -exec ls -i {} \;

find : команда находки
. : каталог для поиска
-iname 'test*' : ищите что-либо, что соответствует тесту* независимо от случая
-type f : только ищите файлы
-exec ls -i {} \; : выполните ls-i на каждом найденном файле

find . -iname 'test*' -type f -printf '%i %f\n'

find : команда находки
. : каталог для поиска
-iname 'test*' : ищите что-либо, что соответствует тесту* независимо от случая
-type f : только ищите файлы
-printf '%i %f\n' - распечатайте inode, затем имя файла только (никакие каталоги), и разделите каждый файл новой строкой

Примечания:

  • Замена -iname для -name если Вы хотите быть чувствительными к регистру.
  • Замена . с полным путем, если Вы хотите искать что-нибудь кроме текущего рабочего каталога.
  • Замена %f с %p для имени файла, включая путь (отличается, используете ли Вы относительные или полные пути в своей команде находки).
  • Если требуется быть выборочными в каталогах, не забывайте параметры -prune и -depth
  • Можно быть более конкретными со строкой и сделать что-то как 'test[0-9]' найти все test0-test9, или 'test[0-9]*' для чего-либо со строкой "тест", затем одна цифра, что-либо после этого.
0
27.01.2020, 20:51

Теги

Похожие вопросы