Copie todos los archivos de un directorio remoto
Este artículo explica métodos para copiar archivos entre diferentes hosts en una red. Además, explora el comando scp
y cómo se usa para copiar archivos desde una ubicación remota.
el comando scp
El protocolo de copia segura (SCP) es un protocolo de red que copia de forma segura y facilita la copia fluida de archivos y carpetas entre sistemas operativos compatibles con Unix.
El comando scp
es una variante mucho más segura del comando cp
. Cifra las contraseñas y los archivos durante la copia remota a través de una conexión de shell seguro (SSH), protegiendo así la comunicación de los ataques de rastreo.
Para obtener más información sobre scp
, utilice el siguiente comando.
man scp
Las páginas de manual (forma abreviada de Manual Pages) son una utilidad de Unix que muestra información sobre llamadas al sistema, llamadas a bibliotecas, estándares y convenciones formales, e incluso conceptos abstractos. Como las páginas del manual se descargan junto con el kernel, no requieren conexión a Internet.
Copiar archivos en Bash
Hay varias formas de copiar archivos en Bash, cp
, cat
, vim
(cualquier editor de texto) y scp
son solo algunas de las muchas formas en que podemos hacerlo. El siguiente código explora formas de copiar archivos en Bash.
1) cp <source file>.txt <destination file>.txt
2) cat 0<source_file.txt 1>destination_file.txt
3) cat <source_file.txt >destination_file.txt
El primer método copia el contenido del archivo de origen y luego lo pega en el archivo de destino. Es importante tener en cuenta que cp
pegará el contenido en el archivo de destino incluso si no existe.
Hace esto porque el núcleo creará automáticamente el archivo de destino.
El segundo método utiliza conceptos que habría estudiado en su curso de Sistemas Operativos. Recuerde el ppfdt
(tabla de descriptores de archivos de proceso), el descriptor de archivos 0
apunta al teclado (stdin
), el descriptor de archivos 1
apunta al monitor (stdout
), y el descriptor de archivos 2
apunta al monitor (stderror
).
Este segundo método anula el descriptor 0
para apuntar al archivo fuente. También anula el stdout
para apuntar al archivo de destino.
El método tres es similar al segundo método, excepto que en este método, el descriptor 3
apunta al archivo de origen, mientras que el descriptor 4
apunta al archivo de destino.
En ambos métodos 2 y 3, la lectura se realiza desde el archivo de origen y la escritura se realiza en el archivo de destino. De nuevo, es esencial tener en cuenta que el núcleo pegará el contenido en el archivo de destino incluso si no existe.
Esto se debe a que el kernel creará automáticamente el archivo de destino.
Copie archivos de forma segura en Bash en ubicaciones remotas
La sintaxis general para el comando scp
se encuentra a continuación.
scp [option] [user_name@source_host:path/to/source/file] [user_name@target_host:destination/path]
Si no proporcionamos ningún nombre de usuario
, el scp
usa el usuario actual como predeterminado. Si excluye la ruta de destino, el comando scp
considera copiar desde el origen a la ruta local actual.
De manera similar, omitir la ruta de origen hará que el comando scp
utilice la ruta local actual como fuente para copiar los archivos.
En la opción, si especifica -r
, copia recursivamente todos los archivos y subdirectorios. Entonces, si desea copiar archivos, no especifique ninguna opción. Copiará los archivos pero excluirá los subdirectorios.
El beneficio de scp
sobre otros comandos es que es mucho más seguro ya que encripta los archivos.