И снова ввод/вывод

Да уж, познавательное чтиво.

Т.е., явно задавать обработку по одному.

Но от файлового менеджера я такого поведения не ожидал.
Чтобы командная строка cp превысила лимит, нужно чтобы в каталоге было очень много элементов, и рекурсивное копирование вы начали именно с этого страшного списка. Если копировать САМ каталог со всем этим непотребством, никакого переполнения строки в любом случае не будет, как и списка в командной строке.

Посмотрел статью, решил попробовать оценить щедрость лимита.
$ getconf ARG_MAX
2097152
$ cd /usr/lib/
$ echo * | wc -c
78858
То есть получается, что даже в /usr/lib/ список файлов на два порядка ниже лимита. Спрашивается, что что же это за каталог должен быть такой жуткий, что в в лимит не влазит?!
Natrio
Если копировать САМ каталог со всем этим непотребством, никакого переполнения строки в любом случае не будет, как и списка в командной строке.

Я не знаю, как это делает Dolphin, но ему я командую скопировать именно каталог.

А как по этой методике с вложенными каталогами посчитать? Если так, как я думаю - список всего подряд, то получается 2293025
elsonador
Я не знаю, как это делает Dolphin, но ему я командую скопировать именно каталог.
А как по этой методике с вложенными каталогами посчитать? Если так, как я думаю - список всего подряд, то получается 2293025
В том-то и дело, что вложенные в командную строку НЕ ПОПАДАЮТ! Они читаются из каталогов уже самим cp, и только если ему задано работать рекурсивно.
То есть, если вы перейдёте в корень, и выполните любую команду со звёздочкой вместо аргументов, эта звёздочка независимо от используемой команды будет развернута в список элементов каталога, но только ЭТОГО каталога:
$ cd /
$ echo *
bin boot dev etc home lib lost+found media mnt opt proc root run sbin srv sys tmp usr var
Здесь команда echo просто выводит свои аргументы, на то она и "эхо".
Команда cp получит в свою командную строку ТО ЖЕ САМОЕ и ни граммом больше, а дальше будет работать с этим уже сама.

Не команда разворачивает звёздочку, это делает шелл перед запуском команды. Но после того как она получила свою строку и запустилась, строка больше никак не разворачивается.
 
Зарегистрироваться или войдите чтобы оставить сообщение.