(Resuelto) - bash: /bin/mv: Argument list too long

26 nov 2021 1 min di lettura
(Resuelto) - bash: /bin/mv: Argument list too long
Indice dei contenuti


Introducción

Uno de mis servidores de desarrollo contiene millones de archivos en un solo directorio. Para liberar espacio en disco, decidimos moverles una nueva carpeta creada en otro disco conectado al mismo sistema. Cuando intenté mover el archivo con el comando mv, recibí el siguiente error:

-bash: / bin / mv: lista de argumentos demasiado larga

El error "Lista de argumentos demasiado larga" suele ocurrir cuando se pasa una gran cantidad de parámetros a un solo comando. Una variable de sistema ARG_MAX define la longitud máxima de caracteres de los argumentos en un comando de shell.

La solución

La solución rápida es usar la utilidad de línea de comandos xargs o encontrar el comando con -exec… {}. Ambos comandos dividen un comando grande en uno más pequeño y completan el trabajo sin errores.

Uso de buscar con xargs: el siguiente comando moverá todos los archivos con la extensión .txt al directorio de destino:

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

Uso de buscar con exec: también puede usar exec para realizar la misma tarea:

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

Los comandos predefinidos anteriores navegarán recursivamente a los subdirectorios. Para limitar la búsqueda solo al directorio actual, utilice -maxdepthseguido del número límite de subdirectorios:

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

Puede encontrar el límite máximo con el comando getconf ARG_MAXen el shell.

Conclusión

En este tutorial hemos visto cómo solucionar el error: "-bash: / bin / mv: Argument list too long"

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.