Tutoriales

La Manera Fácil de Copiar y Mover Grandes Cantidades de Archivos Usando Terminal

Quiere copiar o mover 5,00,000 o más archivos a la vez, pero la Terminal se queja de que «la lista de argumentos es demasiado larga».

Si creó muchos archivos usando el método descrito en este artículo («Crear varios archivos y directorios a la vez en la terminal de Linux»), puede ser difícil moverlos o copiarlos todos a la vez en una nueva ubicación.

Afortunadamente, hay varias formas de mover o copiar rápida y fácilmente una gran cantidad de archivos en Linux.Uno de esos métodos es utilizar la herramienta de línea de comandos cp, tary rsyncque permiten copiar y mover grandes cantidades de archivos de forma rápida y sencilla, pero tienen un cierto umbral por encima del cual el comando arrojará un error.

Entonces, echemos un vistazo a cómo copiar y mover de manera eficiente una gran cantidad de archivos desde la línea de comandos.

Crear problema para mover una gran cantidad de archivos usando el comando táctil

Para mayor claridad, déjame crear 5,00,000 archivos usando mi sistema touch Ordenarque llevará unos minutos, y luego probaremos nuestro comando en el archivo recién creado.

También puede crear una gran cantidad de archivos si lo desea ejecutando:

$ for i in {1..500000};do touch filename$i.txt; done

Cuando esté listo, déjame correr mv Ordenar Mueva todos los archivos a la nueva ubicación. Como era de esperar, la terminal muestra «mv * temp zsh: Argument list too long: mv».

Resuelva el problema de usar el comando de búsqueda para mover una gran cantidad de archivos

La razón es simple: el kernel tiene limitaciones, que varían de un sistema operativo a otro, que limitan la cantidad de argumentos que puede pasar en una sola línea de comando.

cuando ejecutas un comando como mv, cp, rmo tarsu lista de argumentos será demasiado larga a medida que el número de archivos aumente más allá del límite del kernel, lo que eventualmente conducirá a un error de lista de argumentos demasiado larga.

Para arreglar esto, podemos usar find Ordenar y -implementar Opciones para ejecutar comandos en una gran cantidad de archivos

Pero si desea conocer el límite del kernel, puede ejecutar el comando getconf ARG_MAX En su terminal, esto le dará la cantidad máxima de argumentos que puede pasar en una sola línea de comando para evitar errores de argumento.

Bueno, ¡basta ya de charlas triviales! Ahora déjame demostrarte una forma de copiar o mover rápidamente una gran cantidad de archivos desde la terminal.

parte de comando

mediante el uso find comando con -implementar opción, que permite una copia más eficiente de grandes cantidades de archivos, lo que facilita a los usuarios acceder a sus datos y almacenarlos en ubicaciones específicas

Cuando desee copiar muchos archivos, debe usar el comando de búsqueda -implementarque copiará el archivo de los resultados del comando de búsqueda y lo moverá a la ubicación especificada.

Esta es la sintaxis que necesitará usar en la terminal; simplemente reemplace los datos con sus datos reales.

$ find /FILE-PATH/ -name "PASS-FILE-PATTERN" -exec cp {} "/PASS-TARGET-DIRECTORY/" \;

Supongamos que quiero copiar todos los archivos /inicio/shen/Arena de prueba al nuevo directorio /home/shen/directorio de pruebaentonces crearía el siguiente comando para copiar todos los archivos.

$ find /home/shen/test-arena -name "filename*" -exec cp {} -v /home/shen/test-dir \;

Puedo hacer lo mismo para mover todos los archivos grandes arena de prueba llegar directorio de prueba Simplemente reemplace el comando cp con mv y descanse, todo es igual

$ find /home/shen/test-arena -name "filename*" -exec mv {} -v /home/shen/test-dir \;

Incluso puede limitar el comando de búsqueda para que solo funcione en el directorio actual – profundidad máxima parámetros, como se muestra en el siguiente comando:

$ find . -maxdepth 1 -name "file_*" -exec cp {} -v target/ \;
or
$ find . -maxdepth 1 -name "file_*" -exec mv {} -v target/ \;

envolver

Espero que este artículo le haya ayudado a entender cómo mover y copiar grandes cantidades de archivos en sistemas basados ​​en Unix y cómo encontrar las limitaciones del kernel.

Si conoce otros métodos para mover y copiar grandes cantidades de archivos, compártalos en la sección de comentarios.

Con eso en mente, terminaré esta guía. Si tiene más sugerencias, compártalas a continuación.

LEER  Los ingenieros de Microsoft envían el parche central de Rust Linux para la inicialización del módulo in situ

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba