32-битные адреса блоков в структуре inode ext4

#!/bin/sh

infile=${1--}

cat "$infile"

То есть установите для переменной infileимя первого аргумента, но если оно недоступно, установите для него значение -. catс -в качестве имени входного файла будет считываться из стандартного ввода (, то есть из канала или перенаправления ).


Короче:

#!/bin/sh

cat -- "${1--}"

или, как указывает Стефан,

cat -- "$@"

, что дополнительно позволит вам указать несколько имен файлов в командной строке.


Еще короче:

alias PipeTester=cat

То, что вы делаете, является более или менее повторной реализацией cat. Ваш сценарий PipeTesterна самом деле может быть заменен на cat, и вышеприведенное делает это с помощью псевдонима.

2
17.11.2019, 22:57
1 ответ

Интерпретация массиваinode.i_blockотличается в Ext4 по сравнению с предыдущими форматами дисковых файловых систем -. В Ext4, когда индекс EXT4_EXTENT_FLустановлен в i_flags, этот массив хранит корень дерева экстентов и до четырех дескрипторов экстентов(struct ext4_extentили struct ext4_extent_idx). Вы заметите, что в дескрипторе экстента есть 48 бит для адреса блока.Для более старых форматов дисков -, например. Ext3, максимальное количество блоков действительно умещается в 32 бита.

См. Структуры данных и алгоритмы Ext4 , раздел 4.2 Содержимое блока inode.i _.

4
27.01.2020, 21:58

Теги

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