El comando Linux mv se usa para mover archivos y directorios de una ubicación a otra. Además de mover los archivos, también puede cambiar el nombre de un archivo o directorio.
1. Cambiar el nombre de un archivo
Al cambiar el nombre de un archivo usando el comando mv, mantiene el mismo número de inodo incluso después de moverlo a un nombre diferente. Si mueve el archivo a un sistema de archivos diferente, el número de inodo será diferente.
$ cd /tmp $ ls -i sample.txt 136407 sample.txt $ mv sample.txt sample1.txt $ ls -i sample1.txt 136407 sample1.txt
2. Cambiar el nombre de un directorio
Al igual que cambiar el nombre de un archivo, puede cambiar el nombre de un directorio usando el comando mv como se muestra a continuación. Esto también mantiene el mismo número de inodo del directorio después de cambiar el nombre.
Si solo hace ls -l dir, mostrará los archivos en el directorio. Para mostrar las propiedades del directorio, use la opción -d. La opción -i muestra el número de inodo del directorio.
$ ls -ldi dir1 271365 drwxr-xr-x 2 bala bala 4096 2010-10-30 20:25 dir1 $ mv dir1 dir2 $ ls -ldi dir2 271365 drwxr-xr-x 2 bala bala 4096 2010-10-30 20:25 dir2
3. Solicitar una confirmación antes de sobrescribir
Por defecto, el comando mv no solicitará ninguna confirmación si el archivo de destino existe, simplemente lo sobrescribe. Para evitar esto, es posible que desee obtener una confirmación del comando de movimiento antes de sobrescribir el archivo de destino con la opción -i, como se muestra a continuación. Puede escribir 'y' o 'n' para aceptar o rechazar la operación de movimiento.
$ mv -i sample.txt sample1.txt mv: overwrite `sample1.txt'?
Cuando el permiso del archivo de destino es diferente al del archivo de origen, el comando mv -i mostrará la siguiente confirmación.
$ mv -i sample.txt sample1.txt mv: try to overwrite `sample1.txt', overriding mode 0644 (rw-r--r--)? y
4. Mover varios archivos a un directorio específico
Puede mover varios archivos con el comando mv. El siguiente ejemplo mueve el contenido del directorio actual a un directorio diferente.
$ cd chap1 $ ls -F ex1.c ex2.c ex3.c example/ exercise/ $ mv * chap2/
5. Realice una copia de seguridad del destino antes de sobrescribir
Con la opción mv –suffix, puede realizar una copia de seguridad del archivo de destino antes de sobrescribirlo. El archivo de destino original se moverá con la extensión especificada en la opción de sufijo -S o –.
$ ls file1 file2 $ mv --suffix=.bak file1 file2 $ ls file2 file2.bak
6. Mueva solo los archivos que no existen en el directorio de destino
Cuando haga mv *, moverá todos los archivos al directorio de destino. Sin embargo, si desea mover solo los archivos del directorio de origen que no existen en el directorio de destino, use la opción mv -u como se muestra a continuación.
El siguiente comando moverá solo ex2 y ex2 del capítulo 1 al capítulo 2, ya que el archivo ex1 ya existe en el capítulo 2, que no se moverá.
$ ls chap1 ex1 ex2 ex3 $ ls chap2 ex1 $ mv -u chap1/* chap2/ $ ls chap1 ex1 $ ls chap2 ex1 ex2 ex3