Resumen de técnicas para copiar archivos entre sistemas Linux

  
El trabajo diario requiere el copiado /movimiento frecuente de grandes cantidades de archivos desde servidores remotos o locales. Cuando el archivo está más disperso, la velocidad es más lenta, por lo que me pregunto si hay una manera más rápida. Después de recopilar, clasificar y verificar, probablemente existan los siguientes. En primer lugar, no importa si es local o remoto, si necesita mover o copiar más archivos y no ser demasiado grande, use el comando cp y el comando mv para ser menos eficiente. Puede usar la herramienta tar para empaquetar /comprimir el contenido que se copiará /moverá primero. Luego copia /mueve y finalmente desembala /descomprime. Además, también es una habilidad clave, es decir, no tiene que copiar, desempaquetar /descomprimir después de que el tar esté empaquetado /comprimido, y puede realizar el desempaquetado /descompresión de paquetes empaquetando /comprimiendo el otro lado a través de la tubería. Por ejemplo, el comando tar se puede combinar con el comando nc para transferir rápidamente archivos y directorios entre dos máquinas: máquina B: nc -l 5555 | Máquina de alquitrán -C /tmp /prueba /-xf -A: tar cf - /tmp /prueba /| Nc B'IP 5555 Los pasos anteriores copian el contenido de A machine /tmp /test /al directorio correspondiente de la máquina B, donde tar cf - /tmp /test /| Nc B'IP 5555 empaqueta el lado del contenido por canalización y comando nc a la máquina B mediante la dirección IP correspondiente y el puerto 5555, nc -l 5555 | Tar -C /tmp /test /-xf - Escucha el puerto 555 de la máquina y desempaqueta el contenido recibido en el directorio especificado (el parámetro -C especifica el directorio de destino). Además, tar se puede combinar con los comandos scp y ssh: Después de empaquetar la máquina A, cópiela en la máquina B y desempaquete tar -cf - /tmp /test |  Ssh B'IP " cd /tmp; tar -xf - " empaquetado en la máquina A, y copió el archivo empaquetado en la máquina B tar -cf - /tmp /test |  Ssh B'IP " cd /tmp; cat - > test.tar " tar -cf - /tmp /test |  Scp - B'USER @ B'IP: /tmp copia el archivo del paquete de la máquina A a la máquina B y desempaqueta zcat test.tar |  Ssh B'IP " cd /tmp; tar -xf - " también se puede utilizar directamente de forma local: cd /tmp /test1tar -cf -. |  (cd /tmp /test2; tar -xvpf -) Pero algunas personas han llegado a la conclusión de que el uso directo local de cp es más rápido. Otros trucos: copiar el directorio además de copiar un solo archivo, a veces junto con los atributos del archivo /directorio Copia Puede usar el parámetro -R para copiar recursivamente el directorio en el comando cp, y usar el parámetro -p para copiar el atributo de retención del archivo (el valor predeterminado es: modo, propiedad, marcas de tiempo también pueden especificar los atributos que se reservarán mediante --preserve [= ATTR_LIST] como: contexto. Links, xattr, all), use el parámetro -d para copiar el archivo para conservar la conexión. O simplemente use el parámetro -a (equivalente a usar -dR --preserve = all). Si desea ver el progreso de la copia de un gran número de archivos pequeños, puede escribir un pequeño script simple: cd /tmp /testfor i en * docp $ i directorio de destino Echo $ i está bien ....

listo

Finalmente agregue un truco que no sea complicado: antes de usar una herramienta para completar una tarea, piense si la herramienta actualmente en uso es la herramienta más adecuada. ¿Hay alguna herramienta o método mejor? Si la herramienta es realmente adecuada para la tarea actual, ¿existe alguna técnica especial para mejorar la productividad al usar la herramienta? (Por lo general, ver los archivos de ayuda puede ser una sorpresa.)

Copyright © Conocimiento de Windows All Rights Reserved