El comando cp en Linux significa “copiar”. Es una utilidad de línea de comandos que se utiliza para copiar archivos y directorios de una ubicación a otra dentro del sistema de archivos. Al utilizar el comando cp, los usuarios pueden crear duplicados de archivos o directorios, preservando el contenido original.
La fuente es el archivo o directorio que desea copiar y el destino es la ubicación donde desea colocar la copia. Se pueden agregar varias opciones para modificar el comportamiento de la copia, como preservar los atributos del archivo o proporcionar una salida detallada. Es un comando fundamental y ampliamente utilizado en Linux para administrar archivos y directorios.
En esta publicación, veremos algunas formas comunes en que se usa el comando cp para copiar archivos y carpetas en Linux.
Sintaxis:
cp [options] source destination
1. Duplicar un archivo
cp foo.txt bar.txt
Este comando copiará el contenido del archivo foo.txt en un archivo llamado bar.txt.
Ejemplo:
Digamos que tiene un archivo llamado foo.txt con el siguiente contenido:
Hello, World!
Si ejecuta el comando cp foo.txt bar.txt, creará un nuevo archivo llamado bar.txt con exactamente el mismo contenido que foo.txt:
Hello, World!
Si bar.txt ya existe, su contenido se sobrescribirá con el contenido de foo.txt. Si bar.txt no existe, se creará.
2. Duplicar un directorio (y su contenido)
cp -R foo-folder bar-folder
La opción -R significa “recursivo” y se utiliza para copiar directorios y su contenido, incluidos los subdirectorios.
Esto es lo que hace el comando cp -R foo-folder bar-folder:
- cp: Invoca el comando copiar.
- -R: le indica al comando que opere de forma recursiva, copiando todos los directorios y subdirectorios.
- foo-folder: el directorio de origen que desea copiar.
- carpeta-bar: El directorio de destino donde desea copiar el directorio de origen.
Ejemplo
Digamos que tienes un directorio llamado foo-folder con la siguiente estructura:
foo-folder/ ├── file1.txt └── subfolder └── file2.txt
Y desea copiar este directorio completo en otro directorio llamado carpeta de barra.
Ejecutarías el comando:
cp -R foo-folder bar-folder
Después de ejecutar este comando, el directorio bar-folder tendrá la misma estructura que foo-folder:
bar-folder/ └── foo-folder ├── file1.txt └── subfolder └── file2.txt
Si la carpeta de barras no existe, se creará. Si existe, la carpeta foo se copiará en ella, preservando la estructura de la carpeta foo.
Nota: Si desea copiar el contenido de foo-folder directamente en bar-folder sin crear una foo-folder dentro de bar-folder, deberá asegurarse de que bar-folder exista y luego ejecutar:
cp -R foo-folder/* bar-folder/
3. Muestra el progreso de la copia.
cp -v foo.txt bar.txt
La opción -v significa “detallado” y cuando se usa con el comando cp, proporciona información detallada sobre las operaciones que se realizan.
Ejemplo:
Supongamos que tiene un archivo llamado foo.txt en su directorio actual y desea crear una copia de este archivo en el mismo directorio con un nuevo nombre bar.txt. Puede utilizar el siguiente comando:
cp -v foo.txt bar.txt
Si la operación es exitosa, el comando generará un mensaje como este:
'foo.txt' -> 'bar.txt'
Este mensaje confirma que el archivo foo.txt se ha copiado a bar.txt.
4. Confirmación para sobrescribir un archivo
cp -i foo.txt bar.txt
La -i significa “interactivo”. Cuando utilice esta opción, el sistema le avisará antes de sobrescribir cualquier archivo. Esto es útil si desea evitar sobrescribir accidentalmente archivos existentes.
Ejemplo:
Digamos que tiene un archivo llamado foo.txt en su directorio actual y desea crear una copia llamada bar.txt en el mismo directorio. Sin embargo, no está seguro de si ya existe un archivo llamado bar.txt y no desea sobrescribirlo sin que se le advierta.
Usarías el comando:
cp -i foo.txt bar.txt
Si bar.txt ya existe, el sistema le mostrará un mensaje como:
cp: overwrite 'bar.txt'?
Luego puede optar por sobrescribirlo escribiendo y (sí) o evitar sobrescribirlo escribiendo n (no).
Si bar.txt no existe, el comando simplemente creará una copia de foo.txt llamada bar.txt sin ningún aviso.
5. Copiar varios archivos a un directorio
cp foo.txt bar.txt baz
Este comando duplicará una copia de foo.txt y bar.txt en el directorio baz. El directorio baz primero debe existir para que el comando funcione.