Cuando trabaje en sistemas Linux y Unix, copiar archivos y directorios es una de las tareas más comunes que realizará a diario.
cp
es una utilidad de línea de comandos para copiar archivos y directorios en sistemas Unix y Linux.
En este artículo, explicaremos cómo usar el cp
comando.
Cómo usar cp
comando #
La sintaxis general para cp
El comando es el siguiente:
cp [OPTIONS] SOURCE... DESTINATION
La SOURCE
puede contener uno o más archivos o directorios como argumentos, y el DESTINATION
el argumento puede ser un solo archivo o directorio.
- Cuando el
SOURCE
yDESTINATION
los argumentos son ambos archivos, elcp
El comando copia el primer archivo en el segundo. Si el archivo no existe, el comando lo crea. - Cuando el
SOURCE
tiene múltiples archivos o directorios como argumentos, elDESTINATION
El argumento debe ser un directorio. En esta situación, elSOURCE
los archivos y directorios se mueven alDESTINATION
directorio. - Cuando el
SOURCE
yDESTINATION
argumentos son ambos directorios, elcp
El comando copia el primer directorio en el segundo.
Para copiar archivos y directorios, debe tener al menos permisos de lectura en el archivo de origen y permiso de escritura en el directorio de destino. De lo contrario, se muestra un error de permiso denegado.
Copiando archivos con el comando cp #
El escenario más básico de usar cp
es copiar un archivo en el directorio de trabajo actual. Por ejemplo, para copiar un archivo llamado file.txt
a file_backup.txt
, acabas de ejecutar el siguiente comando:
cp file file_backup
o:
cp file{,_backup}
Para copiar un archivo a otro directorio, especifique la ruta absoluta o relativa al directorio de destino.
Cuando solo se especifica el nombre del directorio como destino, el archivo copiado tiene el mismo nombre que el archivo original.
En el siguiente ejemplo, estamos copiando el archivo file.txt
al /backup
directorio:
cp file.txt /backup
Si desea copiar el archivo con un nombre diferente, debe especificar el nombre de archivo deseado. El siguiente comando copiará el archivo al directorio especificado como new_file.txt
.
cp file.txt /backup/new_file.txt
De forma predeterminada, si el archivo de destino existe, se sobrescribe. El -n
opción le dice a cp
no sobrescribir un archivo existente.
Para forzar cp
para solicitar confirmación, utilice -i
opción.
cp -i file.txt file_backup.txt
Si desea copiar el archivo solo si es más nuevo que el destino, invoque el comando con -u
opción:
cp -u file.txt file_backup.txt
Al copiar un archivo, el nuevo archivo es propiedad del usuario que ejecuta el comando. Usa el -p
opción para conservar el modo de archivo, la propiedad y las marcas de tiempo:
cp -p file.txt file_backup.txt
Otra opción que puede ser útil es -v
, que le dice a cp
para imprimir la salida detallada:
cp -v file.txt file_backup.txt
'file.txt' -> 'file_backup.txt'
Copiando directorios con comando cp #
Para copiar un directorio, incluidos todos sus archivos y subdirectorios, use -R
o -r
opción.
En el siguiente ejemplo, estamos copiando el directorio Pictures
a Pictures_backup
:
cp -R Pictures Pictures_backup
El comando anterior crea el directorio de destino y copia recursivamente todos los archivos y subdirectorios del origen al directorio de destino.
Si el directorio de destino ya existe, el directorio de origen y su contenido se copian dentro del directorio de destino.
Para copiar solo los archivos y subdirectorios pero no el directorio de origen, use -T
opción:
cp -RT Pictures Pictures_backup
Otra forma de copiar solo el contenido del directorio, pero no el directorio en sí, es utilizar el carácter comodín (*
). La desventaja del siguiente comando es que no copia los archivos y directorios ocultos (los que comienzan con un punto .
):
cp -RT Pictures/* Pictures_backup/
Todas las opciones que usamos en la sección anterior al copiar archivos también se pueden usar al copiar directorios. La principal diferencia es que al copiar directorios, siempre debe usar -R
opción.
Copiar múltiples archivos y directorios #
Para copiar varios archivos y directorios a la vez, especifique sus nombres y use el directorio de destino como último argumento:
cp file.txt dir file1.txt dir1
Al copiar varios archivos, el destino debe ser un directorio.
Conclusión #
Copiando archivos y directorios con el cp
comando es una tarea simple. Para obtener más información sobre el cp
disponible opciones, escriba man cp
en tu terminal.
Para copiar archivos a través de la red, use rsync
y scp
utilidades.
Si tiene alguna pregunta o comentario, no dude en dejar un comentario.