Comando Linux mv

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 comando 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.

Tu Servidor y Amigo

Luis Armando Medina

Sígueme en Twitter: @larmedina
Sígueme en Facebook: dame un like LuisMedinaMLM

This entry was posted in Comandos Linux and tagged , , . Bookmark the permalink.

5 Responses to "Comando Linux mv"

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


*