Объясните, что вывод-D уровней в GNU находит

gzip -l foo.gz | awk 'NR==2 {print $2}' печатает размер несжатых данных.

if LC_ALL=C gzip -l foo.gz | awk 'NR==2 {exit($2!=0)}'; then
  echo foo is empty
else
  echo foo is not empty
fi

Кроме того, можно начать распаковывать данные.

if [ -n "$(gunzip <foo.gz | head -c 1 | tr '\0\n' __)" ]; then
    echo "foo is not empty"
else
    echo "foo is empty"
fi

(Если Ваша система не имеет head -c для извлечения первого байта использовать head -n 1 извлечь первую строку вместо этого.)

2
18.05.2011, 21:27
1 ответ

Судя по исходному коду, числа в квадратных скобках являются априорным предполагаемым показателем успешности для данного предиката. Таким образом, первое [0.4] оценка вероятности что -type d оценит к истинному. Это может использоваться для определения порядка, в котором оценены условия предиката. Можно найти больше в findutils-4.4.2/find/parser.c, findutils-4.4.2/find/tree.c и findutils-4.4.2/find/pred.c.

4
27.01.2020, 22:01

Теги

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