Причина сбоя этой команды (даже с исправленной опечаткой) в том, что она синтаксически неверна.
split -n10 -a4 -d5 somefile
Флаг -d
не принимает числовой аргумент. (Сравните это с длинной версией - числовые суффиксы
, которые могут.) См. Разделенный вызов для подробностей, которые, к сожалению, опущены на производной странице руководства.
Используйте вместо этого
split -n10 -a4 --numeric-suffixes=5 somefile
поman lsof
An open file may be a regular file, a directory, a block special file, a character special file, an executing text reference, a library, a stream or a network file (Internet socket, NFS file or UNIX domain socket.) A specific file or all the files in a file system may be selected by path.
Таким образом, количество строк в lsof
, вероятно, намного больше, чем фактический файловый дескриптор.
См. этот повторный вопрос:https://serverfault.com/questions/485262/number-of-file-descriptors-different-between-proc-sys-fs-file-nr-and-proc-pi
@Archemar прав. Я опоздал с ответом. Я проверяю (исключить специальный символьный файл, сетевой файл, каталоги...):
$ lsof /|grep -v DIR|wc -l
1191
$ sysctl fs.file-nr
fs.file-nr = 1280 0 98018
Есть 1191
открытых файлов и 1280
выделенных дескрипторов. Значения очень близки.