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
Sígueme en Twitter: @larmedina
Sígueme en Facebook: dame un like LuisMedinaMLM
By Terminales posibles y tangibles. – Platohedro 04/04/2016 - 12:04 pm
[…] ejercicios básicos de manipulación de directorios, creación (mkdir), movimiento (mv) remover (rm) cambio (cd), listado de directorios (ruta del directorio$ ls ), con este ejercicio se […]
By Fernando V. 02/20/2022 - 9:36 am
Muchas gracias. Lo explicas todo de forma sencilla y concisa lo que lo hace sencillo de entender.
By Luis Armando Medina 03/04/2022 - 12:33 pm
Me da gusto que se haya sido de utilidad Fernando, Saludos desde México.
By victor da rocha 04/12/2023 - 3:28 am
me ha ayudado mucho, gracias
By Copiando Archivos En Linux - X5 Servers 12/04/2023 - 4:06 pm
[…] comando mv mueve un archivo o un directorio, lo coloca en una nueva ubicación y lo elimina de la ubicación […]