В развитие ответа jordanm:
wc -l
if [ "$#" -gt 0 ] then cat -- "$@" | wc -l else эхо 0 fi
или
cat -- /dev/null "$@" | wc -l
-- "$@"
для защиты от имен файлов, начинающихся с -
. cat
без аргументов,
поскольку это приведет к считыванию стандартного ввода. cat a_single_file | something
- это классическая форма ужасного Бесполезного использования Cat,
но cat one_or_more_file(s) | something
может быть в порядке (хотя это все равно не идеально). wc
выдает строку "total"if [ "$#" -gt 0 ] then wc -l -- /dev/null "$@" | tail -1 else echo 0 total fi
или
wc -l -- /dev/null /dev/null "$@" | tail -1
wc
выдает строку total
только если у него есть как минимум два аргумента имени файла. awk
без использования wc
if [ "$#" -gt 0 ] then awk 'END {print NR}' -- "$@" else эхо 0 fi
or
awk 'END {print NR}' -- /dev/null "$@"
Приведенные выше команды не дадут одинакового ответа. если любой из файлов заканчивается символом, отличным от новой строки.
zfs 0.7.9 ahora está disponible en los repositorios que solucionan el problema.
Вместо того, чтобы возвращаться к последнему ядру z -stream 7.4, я пересобрал последние доступные пакеты (0.7.8 )с патчем от разработчиков ZoL, который устраняет проблему. Я загрузил все свои обороты сюда :https://step.polymtl.ca/~coyote/dist/zfs/0.7.8-1.2
Это связано с обратным переносом изменений, внесенных Red Hat в ядро 7.5 (v3.10.0 -862 ). ls
выполняет системный вызов getdents()
, который теперь выполняет iterate_dir()
вместо readdir()
.
Возврат к ядру версии 3.10.0 -693.21.1 должен решить проблему.