Muchos de nosotros si no es que la mayor parte estamos acostumbrados a utilizar una interfaz gráfica o entorno de escritorio por así decirlo. Las tareas de mover, editar, renombrar entre otras cosas a archivos o carpetas suelen ser hechas de una manera simple con solo un par de clics.
Pero que sucede cuando tienes que utilizar estos movimientos en un servidor que la mayor parte de ellos suelen ser administrados solo desde una consola de comandos, esto suele ser ocupado en servidores dedicados, aunque nunca está de más saber cómo se realiza esto pues uno nunca sabe cuándo puede ser ocupado.
Me ha ocurrido que en algunas ocasiones he perdido mi entorno gráfico y tengo que utilizar la consola para poderlo recuperar, pero eso es otro punto.
El día de hoy vengo a compartir con ustedes unos sencillos comandos que nos ayudaran a realizar las tareas de copiar o mover archivos.
¿Cómo mover archivos o carpetas en Linux?
Lo primero será tener una terminal la cual será nuestra herramienta que nos ayudara a todo esto, lo segundo es crear algunas carpetas con documentos de texto dentro esto con el fin de que no llegues a dañar o perder información.
Lo mas usual es mover algún archivo de directorio para ello vamos a ocupar el comando mv:
mv archivo.txt /home/usuario/Documentos/prueba
Aquí lo que estamos haciendo es mover archivo.txt a la carpeta prueba que se encuentra en nuestra carpeta de documentos. Para ello tomamos en cuenta que estamos posicionados actualmente en el directorio donde se encuentra archivo.txt
Cuando queremos mover mas de un archivo a la vez, el tipo de sintaxis seria el siguiente:
mv archivo.1 archivo.2 archivo.3 /ruta/de/destino
Ahora algo muy útil es el utilizar un * cuando los archivos tienen la misma base en el nombre, por ejemplo:
Amd-gpu…
Amd-gpu-pro..
Amd-driver…
Entonces como podemos apreciar tienen la misma base “AMD” para mover todos esos archivos con esa misma nomenclatura base hacemos lo siguiente:
mv AMD* /ruta/de/destino
Lo mismo aplica para todos esos archivos con del mismo tipo, por ejemplo, .doc, .xls, .deb, .rpm etc. Para moverlos solo aplicamos
mv *.deb /ruta/de/destino
Hasta este punto queda un poco claro cómo funciona y cómo podemos facilitar la tarea de varias maneras, pero que sucede cuando queremos mover todo lo que tiene un directorio tanto archivos como subcarpetas.
Para ello vamos a apoyarnos del *, por ejemplo, quiero mover todo lo que descomprimí de wordpress a dos directorios anteriores:
mv wordpress/* …/
Para conocer un poco mas del comando nos podemos apoyar de su man o con el parámetro -help aquí veremos todos sus parámetros.
¿Cómo copiar archivos en Linux?
Para este caso es casi similar a diferencia que, de mover los archivos o carpetas de una a otra, aquí conservara los archivos y carpetas en su lugar de origen y creara una copia en un directorio elegido.
Un comando sencillo para copiar un archivo o carpeta de un directorio a otro:
cp objetoacopiar rutadedestino
Una manera más explícita de verlo:
cp archivo.txt /ruta/de/destino
Este comando suele ser utilizado mucho para realizar respaldos de un archivo o carpeta que va a ser editada, pues crea una copia total, pero con un renombre diferente, un practico ejemplo:
cp log.txt log.bak
Para copiar varios archivos o carpetas:
cp archivo1 /carpeta1 /carpeta/carpeta /ruta/de/destino
Ahora si queremos copiar todo lo que contiene la carpeta donde estamos posicionados a otro directorio:
cp /* /ruta/de/destino
Ahora si queremos copiar un directorio de un lugar a otro
cp /directorio /ruta/de/destino
Es importante estar un nivel abajo del directorio que vamos a copiar, por que si estamos dentro de el es necesario especificar la ruta completa, dado que si solo ponemos el comando de la manera en que la puse, solo va a crear un directorio vacío.
Finalmente, si queremos conocer todos sus parámetros nos apoyamos en su man o con –help
Sin mas aun que son comandos sumamente básicos su uso te puede ayudar bastante e incluso se debe de tener cuidado con ellos ya que siempre se recomienda utilizar la forma recursiva, que se utiliza con el parámetro -r.
si quiero copiar todos los archivos de una carpeta a otra seria entonces
cp /* /nombre/carpeta/destino ??
estando parado en la carpeta donde tengo los archivos a copiar ??
Quiero copiar un numero especifico de registros del archivo-origen al archivo-destino, en ocasiones es un rango registro-desde registro-hasta, como puedo llevar a cabo esto?