Начнем с вашего первого вопроса: да, одна из этих файловых систем использует меньше места. Даже без дополнительных подробностей маловероятно, что все они используют одно и то же пространство, учитывая, что у них разные реализации. Таким образом, один обязательно будет использовать меньше места, чем все остальные.
Btrfs имеет динамическое распределение inode, поэтому нет заполнения, как у вас с таблицами inode для ext4 (размер которых устанавливается во время создания файловой системы ext4).
XFS является динамической системой аналогичным образом, но имеет ограничение (процент файловой системы, который может использоваться для inodes), поэтому в этом случае, заполняете ли вы свое количество inode, зависит от установленного процента, а также от количества файлов. / размер файла
Учитывая входной файл hexlist.txt , это работает в ksh
и bash
. Он использует утилиту numinterval
. Если numinterval
недоступно, раскомментируйте функцию подделки :
# fake `numinterval` function
# numinterval() { printf '%s %s r - p\n' $(sed '1!{$!p}') | dc ; }
n=; eval printf '%s\\n' $(printf '$((16#%s\n)) ' $(<hexlist.txt)) |
numinterval | grep -qw 1 || n=not ; echo All numbers are $n in sequence
Как сказано в другом ответе, было бы неплохо сделать это в awk, но древний awk (, вероятно, доступный в Solaris ), не понимает шестнадцатеричных чисел.
Быстрое решение — использовать wc -l
и некоторую математику ksh:
#! /bin/ksh
first="0x$(head -n1 infile)"
last="0x$(tail -n1 infile)"
lines=$(wc -l <infile)
if [[ "$(( last - first + 1 - lines ))" -eq 0 ]]; then
echo "All numbers are in sequence."
else
echo "Numbers are not in sequence."
fi