Una de las tareas más básicas cuando se usa un sistema operativo es mover o copiar archivos y carpetas de un lugar a otro. Es el ABC de todo administrador de sistemas. Y, aunque los entornos de escritorio de Linux han facilitado mucho esta tarea permitiendo hacerlo fácilmente con el ratón y de forma gráfica, aún se sigue necesitando usar la consola en muchos casos.
Para poder mover o copiar archivos o carpetas en tu distribución Linux, lo puedes hacer usando unos sencillos comandos que te muestro en este tutorial…
Mover o copiar archivos o carpetas en Linux paso a paso
Existen dos comandos básicos para hacer estas operaciones. Uno de ellos es cp y el otro mv. Es importante conocer las diferencias entre ambos, ya que no sirven para lo mismo aunque a veces parezca confuso.
cp
Con el comando cp lo que se permite es copiar archivos o carpetas de un lugar a otro. Eso significa que el original no se moverá del lugar, permanecerá inmutable, simplemente se hace una copia exacta del mismo y se envía a la ruta destino que hayas especificado.
Por ejemplo, imagina que necesitas copiar el archivo /home/usuario/Descargas/muscia.mp3 y que esté también en /home/usuario/Escritorio/. Para eso, simplemente puedes usar:
cp /home/usuario/Descargas/musica.mp3 /home/usuario/Escritorio
En el caso de querer copiar un directorio de forma recursiva, con todo lo que hay dentro, el comando sería este otro. Imaginando que quieres copiar /home/usuario/contenido en /home/usuario/destino:
cp -R /home/usuario/contenido /home/usuario/destino
Otra opción es copiar todo el contenido de un directorio en otro destino. Por ejemplo, el contenido de /etc en /home/usuario/copia-config:
cp -R /etc/* /home/usuario/copia-config
Con el comando cp también puedes copiar y renombrar un archivo o directorio. Por ejemplo, imagina que tienes un documento llamado diccionario.txt y quieres generar una copia llamada prueba.txt:
cp diccionario.txt prueba.txt
mv
En el caso de mv también permite hacer algunas cosas similares a cp, como por ejemplo renombrar archivos o directorios. En cambio, la diferencia es que no genera copias, sino que simplemente mueve desde un origen hacia un destino. Por tanto, cuando termine, el original ya no estará en origen, sino que habrá pasado a emplazarse en la ruta final especificada.
Por ejemplo, imagina que quieres renombrar un archivo /home/usuario/blog y llamarlo maslinux:
cd ~
mv blog maslinux
Se podría hacer exactamente lo mismo con directorios. Incluso con varios archivos de una vez para moverlos todos al destino:
mv * /home/usuario/destino
Otra cosa que debes saber es su opción -i, que permite indicar si en el destino existe un archivo llamado igual y se aporta la confirmación de sobreescritura:
mv -i prueba.txt /home/usuario/destino
Para evitar sobreescrituras, puedes usar -u, que solo moverá los archivos que no existan en el destino:
mv -u origen/* destino/
Por último, también es importante la opción que hace una copia de seguridad agregando un prefijo antes de sobreescribir:
mv --suffix=.bak trabajo.txt trabajo2.txt
En este caso, si trabajo2.txt ya existía en el destino, verás que se crea un trabajo2.txt.bak como backup.