El hecho de copiar archivos nos sirve para tener un respaldo de los mismos. A la hora de hacer backups de nuestra información o al duplicar archivos de configuración antes de hacer cambios, hay un par de opciones del comando cp que nos resultarán muy útiles. En este post hablaremos sobre tres de ellas: -r
, -i
, y -u
. ¡Comencemos!
Opciones del comando cp
Para empezar, hagamos una lista de los escenarios posibles en una copia del tipo
cp A B
donde A y B pueden ser archivos o directorios, y A debe existir previo a la operación.
- Si A es un archivo y B no existe, se creará una copia de A con el nombre B.
- Cuando A sea un archivo y B exista (y también sea un archivo), se sobreescribirán sus contenidos con los de A.
- Si A es un archivo y B un directorio, se creará A dentro de B.
- Si A es un directorio y B también, será necesario utilizar hacer
cp -r A B
para copiar recursivamente A y sus contenidos en B. De otra forma, la copia fallará.
Precauciones
En primer lugar, consideremos el punto 2 de arriba. Nos puede interesar hacer una copia si el archivo fuente es más reciente que el destino. Es decir, que el primero haya sido modificado luego que el segundo. Por eso, es una buena idea utilizar la opción -u
. También puede suceder que antes de intentar sobreescribir se nos pida confirmación. La opción -i
es la que nos permite acceder a esta funcionalidad.
A continuación, crearemos un archivo llamado archivo1 en el directorio actual:
echo "Soy el archivo1" > archivo1
Hagamos una copia (duplicado) del mismo dentro del subdirectorio dir:
cp archivo1 dir
Posteriormente, modifiquemos dir/archivo1:
echo "Hoy es miércoles" >> dir/archivo1
Y ahora intentemos sobreescribir dir/archivo1 con el archivo del mismo nombre presente en el directorio actual:
cp -u archivo1 dir/archivo1
Como vemos en la Fig. 1, los contenidos de dir/archivo1 no se sobreescriben con los de ./archivo1 ya que la fecha de modificación de este último es anterior a la del primero:
Espero que este post les haya resultado útil.
¡Aprovechá la oportunidad de suscribirte al blog para recibir en tu correo el post nuestro de cada día, novedades, y promociones exclusivas!