comandos-linux-mv-move-rename-mover-renombrar.jpg

Copiar un archivo en Linux es algo muy común pero hay ocasiones que no deseamos crear una copia de un archivo, sino cambiar su ubicación o cambiar de nombre. Estas dos funciones se realizan con el comando linux mv y aquí te explico como usarlo con 10 ejemplos.

mv Linux Command – Comando Linux mv

 

El comando linux mv se utiliza para mover archivos y directorios de una ubicación a otra, también es utilizado para renombrar tanto archivos como directorios y la forma de usar este comando es muy parecida al uso del comando linux cp.

La sintaxis para utilizar el comando linux mv es la siguiente:

mv [OPCION… [-T] ORIGEN DESTINO
mv [OPCION]… ORIGEN… DIRECTORIO
mv [OPCION]… -t DIRECTORIO ORIGEN…

Recuerda que siempre puedes usar el comando linux man para ver mas detalles del uso y las opciones de todos los comandos linux, así como también ejecutarlo con la opcion –help

Aquí te explico como usar el comando linux mv o (mv linux coomand)con ejemplos que te muestran el uso y los trucos de este comando.

1.- Cambiar el nombre de un archivo

Este es el uso más común de mv pero que a un usuario principiante le puede parecer extraño. Por lo general la primer idea que se viene a la cabeza cuando ves mv es que sirve para mover archivos y no para renombrar archivos. Esta pequeña confusión ocurre sobre todo si vienes de sistemas como Windows, pero el comando linux mv es el comando adecuado cuando necesitas que un archivo o directorio tenga un nombre diferente.

$ mv nombre1.txt archivo1.txt

En el ejemplo anterior el nombre del archivo “nombre1.txt” es  cambiado por el nombre “archivo1.txt”, de la forma que se encuentra el archivo solo cambiará de nombre y no de ubicación.

2.- Re nombrar un directorio

Cambiar el  nombre de un directorio es prácticamente lo mismo que un archivo, recuerda que en Linux “Todo es un Archivo” por lo que usar el comando mv con un directorio para cambiar su nombre es igual.

$ mv directorio nueva-carpeta

En este ejemplo “directorio” es un folder o carpeta que cambia de nombre para llamarse “nueva-carpeta” al igual que el ejemplo anterior no se cambia de ubicación, sin embargo para que esto ocurra no debe existir el directorio destino.

3.- Mover archivos de ubicación

Para mover un archivo a una ubicación diferente el DESTINO debes ser un directorio existente, si este es el caso el archivo mantendrá el mismo nombre pero se trasladará a la nueva ruta.

$ mv archivo1.txt ./nueva-carpeta

Si tu ves el contenido del directorio “nueva-carpeta” con el comando ls, podrás apreciar ahora que  “archivo1.txt” se encuentra dentro de “nueva-carpeta”. Primero mira el contenido de la carpeta actual, donde encontrarás un archivo y un directorio.

$ ls -l
-rw-r--r-- 1 lm lm    0 Jul 28 17:37 archivo1.txt
drwxr-xr-x 2 lm lm 4096 Jul 28 17:37 nueva-carpeta

Al ejecutar el comando mv y luego al volver a listar los archivos de forma recursiva podemos ver que en la carpeta actual solo esta el directorio “nueva-carpeta” y ahora dentro de esta se encuentra “archivo1.txt”, mira el ejemplo:

$ mv archivo1.txt nueva-carpeta
$ ls -lR
.:
drwxr-xr-x 2 lm lm 4096 Jul 28 17:37 nueva-carpeta

./nueva-carpeta: total 0 -rw-r--r-- 1 lm lm 0 Jul 28 17:37 archivo1.txt

4.- Mover múltiples archivo 

Puedes mover varios archivos con el comando linux mv a una ruta diferente, para hacerlo solo tienes que poner varios nombres de archivos y que el último sea un directorio como destino. Aquí el ejemplo:

$ mv archivo1.txt archivo2.txt ./textos

También puedes utilizar los caracteres comodín * y ? en los nombres de archivo para lograr el mismo resultados. Mira estos ejemplos:

$ mv archivo?.txt textos
$ mv *.xls excel

5.- Mover un directorio a otra ruta

Este uso del comando mv también es común y para mover un directorio puedes usar rutas relativas o rutas completas ya sea en el origen y el destino. En modo simple, el directorio orígen será re ubicado dentro del directorio destino siempre que este exista, sino existe entonces el directorio destino será el nuevo nombre del directorio origen. Mira los ejemplos si te parece algo confuso.

$ ls -l
drwxr-xr-x 2 lm lm 4096 Jul 28 18:20 excel
drwxr-xr-x 2 lm lm 4096 Jul 28 18:20 textos

Existen los directorios excel y textos. Estos directorios se moverán al directorio Documentos que vamos a crear con el comando linux mkdir, así:

$ mkdir Documentos

Luego vamos a verificar el contenido de “Documentos”

$ ls -l Documentos/
total 0

Aquí hemos comprobado que está vacío. Ahora podemos mover los directorios a “Documentos”, un directorio que existe, por lo tanto, los directorios serán ubicados dentro de ese directorio.

$ mv /home/lm/Downloads/tmp2/excel/ Documentos
$ mv textos/ /home/lm/Downloads/tmp2/Documentos/
$ ls -l Documentos/
drwxr-xr-x 2 lm lm 4096 Jul 28 18:20 excel
drwxr-xr-x 2 lm lm 4096 Jul 28 18:20 textos

Pero que ocurre si “Documentos” no existiera… Mira lo que curre si ejecutamos los mismos comandos. Recuerda no vamos a crear “Documentos”.

$ ls -l
drwxr-xr-x 2 lm lm 4096 Jul 28 18:20 excel
drwxr-xr-x 2 lm lm 4096 Jul 28 18:20 textos

Ahora, sin crear el directorio “Documentos” (no existe), vamos a mover los directorios

$ mv /home/lm/Downloads/tmp2/excel/ Documentos
$ mv textos/ /home/lm/Downloads/tmp2/Documentos/

Al dar un listado del contenido de Documentos tenemos lo siguiente:

$ ls -l Documentos/
-rw-r--r-- 1 lm lm 0 Jul 28 17:46 autos.xls
-rw-r--r-- 1 lm lm 0 Jul 28 17:46 nombres.xls
drwxr-xr-x 2 lm lm 4096 Jul 28 18:20 textos

Vemos que el directorio “excel” fue movido o renombrado (es el mismo resultado practico) a “Documentos” y es el directorio que contiene archivos de excel. Al ejecutar el siguiente comando mv, ya existe un directorio “Documentos” y el directorio “textos” es movido dentro de este.

6.- Ver que ocurre al mover archivos

Si no te ha quedado claro podemos hacer lo anterior con el parámetro -v que te muestra que está ocurriendo. Aquí podrás ver la diferencia entre los dos casos anteriores.

Cuando existe el directorio Documentos

$ mv -v excel/ Documentos/
‘excel/’ -> ‘Documentos/excel’
$ mv -v textos/ Documentos/
‘textos/’ -> ‘Documentos/textos’

Cuando no existe el directorio Documentos

$ mv -v excel/ Documentos/
‘excel/’ -> ‘Documentos/’
$ mv -v textos/ Documentos/
‘textos/’ -> ‘Documentos/textos’

Aquí puedes ver claramente que al no existir “Documentos” el directorio “excel” es renombrado como “Documentos”, en vez del ser movido dentro de “Documentos”.

Esta opción te permite ver que es lo que se ha realizado y a donde se han movido los archivos o directorios.

7.- Preguntar antes de mover

Para realizar una confirmación antes de mover archivos o directorios con el comando linux mv tiene el parámetro -i y lo que hace es preguntar si deseas sobre escribir un archivo si ya existe en el directorio destino y tiene el mismo nombre. Debes responder s o n para Si o No respectivamente. Si no se indica el parámetro -i y existe un archivo con el nombre en el directorio destino, el archivo se sobre escribirá sin advertencia.

$ mv -i archivo3.txt archivo2.txt
mv: sobre escribir ‘archivo2.txt’? n

8.- Mover solo archivos actualizado o que no existan

Si la opción -i se usa para prevenir que se sobre escriba al mover un archivo, la opción -u sirve para mover solo el archivo origen es mas reciente que el archivo destino destino. Si el archivo destino no existe se mueve el archivo.

Si tenemos el siguiente escenario:

$ ls -l
-rw-r--r-- 1 lm lm    0 Jul 28 18:57 archivo1.txt
-rw-r--r-- 1 lm lm    0 Jul 28 19:00 archivo2.txt
-rw-r--r-- 1 lm lm    0 Jul 28 18:56 archivo3.txt
drwxr-xr-x 2 lm lm 4096 Jul 28 18:59 textos
$ ls -l textos/
-rw-r--r-- 1 lm lm 0 Jul 28 18:56 archivo2.txt
-rw-r--r-- 1 lm lm 0 Jul 28 18:56 archivo3.txt

Aquí puedes ver que archivo1.txt no existe en el directorio “textos” y archivo2.txt ha sido modificado, mientras que archivo3.txt no ha sufrido cambios, al mover los archivos al directorio con la opción -u el resultado es el siguiente:

$ mv -uv *txt textos/
‘archivo1.txt’ -> ‘textos/archivo1.txt’
‘archivo2.txt’ -> ‘textos/archivo2.txt’

Solo se mueven los archivos actualizados o que no existen, en esta caso archivo3.txt no es movido al no ser mas reciente que el destino.

9.- No sobre escribir archivos existente

Cuando deseas mover archivos a otro directorio, pero que nunca se sobre escriban los archivos cuando estos existan en el directorio destino, para esto puedes utilizar el parámetro -n. Mira el siguiente ejemplo:

$ ls
archivo1.txt archivo2.txt archivo3.txt archivo4.txt textos

En este directorio tenemos 4 arhivos .txt y en el directorio “textos” hay 3 archivos, estos tienen los mismo nombres que en el directorio actual.

$ ls textos/
archivo1.txt archivo2.txt archivo3.txt

Al ejecutar el comando mv con el parámetro -n solo se mueven los archivos que no existan y los que existen no se sobre escriben, por lo tanto no se mueven.

$ mv -vn *.txt textos/
‘archivo4.txt’ -> ‘textos/archivo4.txt’

Como puedes observar solo archivo4.txt es el que se mueve al directorio textos.

10.- Crear un respaldo antes de sobre escribir

Cuando se requiere mover archivos a un directorio que puede contener archivos con el mismo nombre y se requiere no perder la información que exista, puedes usar el parámetro -b y opcional podrías agregar un sufijo al nombre del respaldo con el parámetro –suffix

$ mv -vb *.txt textos/
‘archivo1.txt’ -> ‘textos/archivo1.txt’ (backup: ‘textos/archivo1.txt~’)
‘archivo2.txt’ -> ‘textos/archivo2.txt’ (backup: ‘textos/archivo2.txt~’)
‘archivo3.txt’ -> ‘textos/archivo3.txt’ (backup: ‘textos/archivo3.txt~’)
‘archivo4.txt’ -> ‘textos/archivo4.txt’

El mismo ejemplo con el parámetro suffix para que los archivos de respaldo tengan unaa extensión .bak al final del nombre del archivo.

$ mv -vb --suffix=.bak *.txt textos/
‘archivo1.txt’ -> ‘textos/archivo1.txt’ (backup: ‘textos/archivo1.txt.bak’)
‘archivo2.txt’ -> ‘textos/archivo2.txt’ (backup: ‘textos/archivo2.txt.bak’)
‘archivo3.txt’ -> ‘textos/archivo3.txt’ (backup: ‘textos/archivo3.txt.bak’)
‘archivo4.txt’ -> ‘textos/archivo4.txt’

El comando mv es uno de esos comandos básicos linux que se usan de forma cotidiana, y al igual que el Comandos Linux: cp, parece que es un comando sencillo pero además posee opciones que lo convierten en un comando poderoso. Conocer su funcionamiento y uso te va a ser de gran utilidad.

 

Fuente: comoinstalarlinux

¿Quién está en línea?

Hay 10989 invitados y ningún miembro en línea