Hemos ejecutado los comandos y ejemplos mencionados en este artículo en un sistema Debian 10 Buster, pero puede replicarlos en casi todas las distribuciones de Linux.
Se puede acceder fácilmente a la línea de comandos de Linux, la Terminal, a través de la Aplicación. Launcher busca de la siguiente manera:
Ejemplo 1: copiar un solo archivo a un directorio de destino
El uso más simple del comando cp es copiar un solo archivo fuente a un directorio de destino. Aquí está la sintaxis que puede usar para hacerlo:
$ cp archivo fuente / destino / directorioEjemplo:
En este ejemplo, estoy copiando un archivo llamado sample_file.txt a mi carpeta Documentos:
Más tarde, verifiqué la presencia del archivo en la carpeta de destino a través del comando ls.
Ejemplo 2: copiar varios archivos a un directorio de destino
Con el comando cp, puede copiar varios archivos a un directorio de destino utilizando la siguiente sintaxis:
$ cp sourcefile1 sourcefile2 sourcefile3… / target / directorioEjemplo:
En este ejemplo, estoy copiando dos archivos de muestra en mi carpeta Documentos a través del comando cp:
Más tarde, verifiqué la presencia de estos archivos en la carpeta de destino a través del comando ls.
Ejemplo 3: copia de archivos de forma interactiva
Si existe un archivo con el mismo nombre en su carpeta de destino, puede usar el comando cp para avisarle antes de sobrescribir el archivo de destino. Puede utilizar el modificador -i de la siguiente manera:
$ cp -i archivo fuente / destino / directorioEjemplo:
En este ejemplo, un archivo llamado sample_file.txt ya existe en mi carpeta Documentos, por lo tanto, el comando cp, con el indicador -i, me pregunta si quiero sobrescribirlo. El archivo se sobrescribirá si ingreso y en este mensaje.
Ejemplo 4: copiar archivos junto con una salida detallada
Una salida detallada imprime lo que está haciendo el comando. Esto se puede incorporar en el comando cp con el modificador -v de la siguiente manera:
$ cp -v archivo fuente / destino / directorioEjemplo:
Puede ver en el siguiente ejemplo cómo el comando cp imprime una salida detallada mientras copia un comando:
Ejemplo 5: copiar un directorio de forma recursiva
El uso de la opción -r con el comando cp copia de forma recursiva todos los archivos y carpetas de un directorio a otra ubicación. Así es como puede usar el comando cp en este escenario:
$ cp -r directorio1 directorio2Ejemplo:
En el siguiente ejemplo, toda la carpeta 1, con todos sus archivos, se copiará a la carpeta 2.
Más tarde verifiqué el contenido de la carpeta 2 a través del comando ls. La carpeta2 contiene una copia de la carpeta de origen ahora.
Ejemplo 6: copiar un directorio de forma recursiva mientras se mantiene un archivo
Al usar el modificador -a con el comando cp, puede hacer dos cosas a la vez:
- Copiar archivos de un directorio de forma recursiva a otro directorio
- Mantenga intactos los permisos, la marca de tiempo, los enlaces simbólicos y todas esas propiedades mientras copia archivos.
Así es como puede usar el comando cp en este escenario:
$ cp -a directorio1 directorio2Ejemplo:
En el siguiente ejemplo, toda la carpeta 1, con todos sus archivos, se copiarán a la carpeta2. Además, los archivos se archivarán como se verificará más tarde a través del 'comando ls -l'.
Ejemplo 7: Copie un archivo en caso de que sea más nuevo que el archivo de destino
A veces, desea copiar un archivo al directorio de destino solo si es más nuevo que el archivo de destino. Esto se puede hacer usando el modificador -u con el comando cp:
$ cp -u archivo fuente o directorio fuente / destino / directorioEjemplo:
En este ejemplo, edité un archivo sample_file.txt de mi carpeta de origen. Estos archivos ya se copiaron en la carpeta de destino antes de editar el archivo. Esto se puede ver en la siguiente salida del comando 'ls -l':
Ahora, cuando copié la carpeta de origen en la carpeta de destino, la salida detallada verificó que solo se copiará el archivo que edité.
Ejemplo 8: Copie un archivo pero no lo sobrescriba si ya existe un archivo de destino
Puede decirle al comando cp que no sobrescriba el archivo si ya existe en la ubicación de destino. Esto se puede hacer mediante el modificador -n de la siguiente manera:
$ cp -n archivo fuente / destino / directorioEjemplo:
En este ejemplo, primero intenté copiar un archivo a la ubicación de destino donde ya existía. El interruptor -i me preguntó si quiero sobrescribirlo.
En el segundo comando, agregué el interruptor -n. Ignoró el modificador -i pero no sobrescribió el archivo ya existente en el directorio de destino.
Ejemplo 9: crear un enlace simbólico a un archivo en el directorio de destino
Con el modificador -s en el comando cp, puede crear un enlace simbólico al archivo de origen en la carpeta de destino en lugar de copiar el archivo de origen.
$ cp -s archivo fuente / destino / directorioEjemplo:
En el siguiente ejemplo, creé un enlace simbólico al archivo sample_file.txt en la carpeta de destino.
Más tarde verifiqué la presencia del enlace simbólico en la carpeta de destino a través del comando 'ls -l'.
Ejemplo 10: crear un vínculo físico a un archivo en el directorio de destino
Cuando crea un vínculo físico a un archivo en otra carpeta, el archivo no se copia en la carpeta de destino; en su lugar, se crea un enlace fijo al archivo de origen. El número de inodo tanto del archivo de origen como del enlace físico copiado es el mismo. Así es como se crea un vínculo físico:
$ cp -l archivo fuente / destino / directorioEjemplo:
En este ejemplo, creé un enlace duro al archivo de origen en la carpeta Documentos.
A través del comando 'ls -il', verifiqué que tanto el archivo original como el enlace físico tienen los mismos números de inodo.
Esto era todo lo que necesitaba saber para dominar el comando cp en Linux. Al usar una combinación de estos conmutados, puede hacer que la copia de archivos sea mucho más personalizable.