#!/bin/sh
infile=${1--}
cat "$infile"
То есть установите для переменной infile
имя первого аргумента, но если оно недоступно, установите для него значение -
. cat
с -
в качестве имени входного файла будет считываться из стандартного ввода (, то есть из канала или перенаправления ).
Короче:
#!/bin/sh
cat -- "${1--}"
или, как указывает Стефан,
cat -- "$@"
, что дополнительно позволит вам указать несколько имен файлов в командной строке.
Еще короче:
alias PipeTester=cat
То, что вы делаете, является более или менее повторной реализацией cat
. Ваш сценарий PipeTester
на самом деле может быть заменен на cat
, и вышеприведенное делает это с помощью псевдонима.
Интерпретация массива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 _.