Как копировать большое число файлов в Alt Linux?
Занимаясь нагрузочным/стресс тестированием, столкнулся с проблемой копирования большого числа файлов.При малом количестве файлов (5000) копирование обычной командой cp через терминал работало без проблем.
Однако, когда речь зашла о 70 000 файлов, то копирование не работало. Перепробовал множество команд, но все они выдавали одну и ту же ошибку: «Слишком длинный список аргументов».
Команды, которые не сработали:
cp /dir1/* /dir
find . -type f copy /dir1/* /dir2
find . -maxdepth 1 -name “*.txt” /dir1/* /dir2
Потом я выяснил, что это происходит из-за ограничений максимального размера буфера командной строки. Кстати, это параметр управляется администратором системы в переменной окружения ARG_MAX. Но не стал заморачиваться с изменением данного параметра.
Опытном путем нашел правильную команду:
cp -r /dir1/. /dir2
Таким образом, главным решением данной проблемы была замена "звездочки" на "точку". И аналогичное решение должно помочь и для команд, например, mv, rm.
Если было полезно, ставь лайк! Спасибо!