[mdk-re] Предельная длинна строки команды?
Sergei
=?iso-8859-1?q?serpiph_=CE=C1_pochtamt=2Eru?=
Чт Сен 13 11:14:01 MSD 2001
Четверг 13 Сентябрь 2001 10:05, Вы написали:
> Привет всем!
> Вот только что столкнулся с этим ограничением.
> Есть локальное хранилище Сизифа, пытаюсь сделать chmod на файлы:
>
> [root на back /]# pwd
> /
> [root на back /]# chmod 0644 /smbshare/globus/Upd/Sisyph/RPMS/*
> bash: /bin/chmod: Argument list too long
> получаю ошибку.
Образуется 1 строка вида "/smbshare/globus/Upd/Sisyph/RPMS/1.rpm
/smbshare/globus/Upd/Sisyph/RPMS/2.rpm ..."
> При этом, если перейти в тот каталог где лежат файлы:
> [root на back /]# cd /smbshare/globus/Upd/Sisyph/RPMS
> [root на back RPMS]# pwd
> /smbshare/globus/Upd/Sisyph/RPMS
> [root на back RPMS]# chmod 0644 *
> [root на back RPMS]#
> ошибки не возникает.
Образуется 1 строка вида "1.rpm 2.rpm ..."
> То есть, подстановка к имени каждого файла имени каталога как раз
> и вызвала превышение предельной длинны строки.
Нет. Сравни, что больше и на сколько.
> Отсюда вопрос:
> А какова у нас в Спринге эта самая предельная длинна? По крайней
> мере для bash.
Самый "простой" способ - залезть в исходники bash :))). На самом деле лезете
в /usr/include/linux/limits.h.
Там англицким по белому написано:
Длина строки аргументов (128Кб)
#define ARG_MAX 131072 /* # bytes of args + environ for exec() */
#define CHILD_MAX 999 /* no limit :-) */
#define OPEN_MAX 256 /* # open files a process may have */
#define LINK_MAX 127 /* # links a file may have */
#define MAX_CANON 255 /* size of the canonical input queue */
#define MAX_INPUT 255 /* size of the type-ahead buffer */
#define NAME_MAX 255 /* # chars in a file name */
Длина строки пути для команды (4Кб-1)
#define PATH_MAX 4095 /* # chars in a path name */
#define PIPE_BUF 4096 /* # bytes in atomic write to a pipe */
--
С уважением, Епифанов Сергей.
Подробная информация о списке рассылки community