(Resuelto) -Bash /bin /MV Lista de argumentos demasiado tiempo
- 859
- 242
- Carmen Casillas
Cuando se trabaja con grandes números de archivos en Linux, no es raro encontrar el error "/bin/mv: lista de argumentos demasiado larga". Este error ocurre al intentar mover o cambiar el nombre de demasiados archivos a la vez, y es una limitación del sistema operativo subyacente. En este artículo, discutiremos qué causa este error y exploraremos formas de trabajar en su alrededor para realizar operaciones de archivos a gran escala de manera eficiente y sin error. Ya sea que sea un principiante o un usuario experimentado de Linux, este artículo le proporcionará información valiosa para superar este problema común.
-bash: /bin /mv: lista de argumentos demasiado tiempo
Una lista de argumentos demasiado larga es un problema común con una fiesta que puede suceder cuando tiene parámetros o argumentos de línea de comandos largos. Empiezas a ejecutar un script y arroja errores como "comando inválido" o "demasiado largo". La razón de esto es que el shell está tratando de leer más allá del final de su lista de argumentos y no hay final de la tubería de entrada para esperar. Una variable del sistema Arg_max Define el Máxima longitud de los argumentos del carácter En un comando shell.
Las soluciones
La solución rápida es usar Xargs utilidad de línea de comando o encontrar comando con -exec ... . Ambos comandos dividen un gran comando en más menor y completan el trabajo sin errores.
- Solución 1: Encuentra con xargs
Para resolver este problema, puede usar el
-print0
opción con el "encontrar" comando y el-0
Opción con el comando "xargs". Esto permitira "Xargs" para manejar archivos con espacios o caracteres especiales en sus nombres correctamente, y también permita el procesamiento de grandes números de archivos sin encontrar el error "Lista de argumentos demasiado larga".Aquí hay un ejemplo:
encontrar . -escriba f -name "*.txt "-print0 | xargs -0 mv -t ~/documentos
- Solución 2: Encuentra con Exec
En lugar de usar XARGS, también podemos usar -El comando exec. Here Buscar archivos de búsqueda y ejecutivo ejecutará el comando mv para cada archivo uno por uno y moverá el archivo al directorio de destino.
encontrar . -nombre '*.txt '-exec mv ~/ documentos/ \;
Los comandos anteriores predeterminados navegarán de manera recursiva a los subdirectorios. Para limitar el hallazgo al directorio actual solo use
-máxima profundidad
seguido de un número de límite a los subdirectorios.encontrar . -nombre '*.txt '-maxdepth 1 -exec mv ~/ documentos/ \;
En este ejemplo, la opción -Print0 se usa con el comando "Buscar" para separar los archivos con un carácter nulo en lugar de una nueva línea, y la opción -0 se usa con el comando "XARGS" para especificar que los elementos de entrada están separados por NULL caracteres. Esto permite que "XARGS" maneje una gran cantidad de archivos sin encontrar el error "Lista de argumentos demasiado tiempo".
Conclusión
En conclusión, el error "MV: Lista de argumentos demasiado larga" es un problema común cuando se trabaja con grandes números de archivos en Linux. Ocurre cuando el número de archivos se pasa como argumentos al comando "MV" excede el límite máximo permitido por el sistema operativo. Para superar este problema, podemos usar los comandos "Buscar" y "Xargs" para pasar una gran cantidad de archivos como argumentos al comando "MV", o podemos usar herramientas como "Paralelo" o "GNU paralelo" para realizar grandes -Scale Operations de archivo de manera eficiente y sin error.
Comprender las causas y soluciones al error "/bin/mv: lista de argumentos demasiado larga" es importante para cualquier persona que trabaje con grandes números de archivos en Linux, y lo ayudará a evitar la frustración y el tiempo perdido al realizar operaciones de archivos.
- « Expresión de secuencia bash (Definir el rango)
- Cómo instalar Python 3.10 en Ubuntu, Debian y Linux Mint »