(Исправлено) -bash:/bin/mv: Слишком длинный список аргументов

12 set 2022 1 min di lettura
(Исправлено) -bash:/bin/mv: Слишком длинный список аргументов
Indice dei contenuti

Введение

Один из моих серверов разработки содержит миллионы файлов в одном каталоге. Чтобы освободить место на диске, мы решили переместить к ним новую папку, созданную на другом диске, подключенном к той же системе. Когда я попытался переместить файл с помощью команды mv, я получил следующую ошибку:

-bash: /bin/mv: слишком длинный список аргументов

Ошибка «Слишком длинный список аргументов» обычно возникает, когда вы передаете большое количество параметров одной команде. Системная переменная ARG_MAX определяет максимальную длину символов аргументов в команде оболочки.

Решение

Быстрое исправление — использовать xargs командной строки xargs или найти команду с -exec… {}. Обе команды разбивают большую команду на меньшую и завершают работу без ошибок.

Использование find с xargs. Следующая команда переместит все файлы с расширением.txt в целевой каталог:

find. -name '*.txt' | xargs mv --target-directory=/path/to/dest_dir/

Использование find с exec: Вы также можете использовать exec для выполнения той же задачи:

find. -name '*.txt' -exec mv {} /path/to/dest_dir/\;

Вышеуказанные предопределенные команды будут рекурсивно перемещаться по подкаталогам. Чтобы ограничить поиск только текущим каталогом, используйте -maxdepth, за которым следует номер ограничения до подкаталогов:

find. -name '*.txt' -maxdepth 1 -exec mv {} /path/to/dest_dir/\;

Вы можете найти максимальное ограничение с помощью команды getconf ARG_MAX в оболочке.

Вывод

В этом уроке мы увидели, как решить ошибку: «-bash: /bin/mv: слишком длинный список аргументов»

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.