Cómo mover archivos y directorios en Linux con el comando mv

Comando mv Linux

Comando mv, mover archivos y directorios es una de las tareas más básicas que a menudo necesita realizar en un sistema Linux.

En este tutorial, explicaremos cómo usar el comando mv para mover archivos y directorios.

Cómo usar el comando mv

El comando mv (corto del movimiento) se usa para renombrar y mover archivos y directorios de una ubicación a otra. La sintaxis del comando mv es la siguiente:

mv [OPTIONS] source destination

El source puede haber uno o más archivos o directorios, y destination puede haber un único archivo o directorio.

  • Si especifica varios archivos o directorios como a sourcedestination debe ser un directorio. En este caso, los archivos source se mueven al directorio de destino.
  • Si especifica un solo archivo como source, y el destino destination es un directorio existente, entonces el archivo se mueve al directorio especificado.
  • Si especifica un solo archivo como source, y un solo archivo como destino destination, entonces está cambiando el nombre del archivo .
  • Si source es un directorio y destination no, se cambiará source su nombre a destination, de lo contrario, se moverá dentro del directorio destination.

Para mover un archivo o directorio es necesario tener permisos de escritura en tanto source destination. De lo contrario, recibirá un error de permiso denegado.

Por ejemplo, para mover el archivo file1 del directorio de trabajo actual al directorio /tmp ejecutaría:

mv file1 /tmp

Para cambiar el nombre de un archivo, especifique el nombre del archivo de destino:

mv file1 file2

El comando para mover directorios es el mismo que para mover archivos. En el siguiente ejemplo, si el directorio dir2 existe, el comando se moverá hacia dir1 adentro dir2. Si dir2 no existe, dir1 será renombrado a dir2:

mv dir1 dir2

Mover múltiples archivos y directorios

Para mover varios archivos y directorios, especifique los archivos que desea mover como origen. Por ejemplo, para mover los archivos file1 file2 al directorio dir1 escribiría:

mv file1 file2 dir1

El comando mv también le permite utilizar la coincidencia de patrones. Por ejemplo, para copiar todos los archivos pdf del directorio actual al directorio ~/Documents usaría:

mv *.pdf ~/Documents

Opciones de comando mv

El comando mv acepta opciones que afectan el comportamiento predeterminado del comando. En algunas distribuciones de Linux mv puede ser un alias para el comando mv con un conjunto personalizado de opciones. Por ejemplo en CentOS mv es un alias para mv -i. Puedes encontrar si mv es un alias usando el comando type:

type mv

Si mv es un alias la salida se verá así:

mv is aliased to `mv -i'

Si especifica opciones en conflicto, la última opción especificada toma precedencia.

Preguntar antes de sobrescribir

Por defecto, si el archivo de destino existe, se sobrescribirá. Para solicitar confirmación utilice la opción -i:

mv -i file1 /tmp
mv: overwrite '/tmp/file1'?

Para sobrescribir el archivo, escriba el carácter yY.

Forzar sobrescritura

Si intenta sobrescribir un archivo de solo lectura, el comando mv le preguntará si desea sobrescribir el archivo:

mv -i file1 /tmp
mv: replace '/tmp/file1', overriding mode 0400 (r--------)? 

Para evitar que se le solicite, utilice las opciones -f:

mv -f file1 /tmp

Esta opción es especialmente útil cuando necesita sobrescribir varios archivos de solo reed.

No sobrescribir los archivos existentes

La opción -n le dice a mv nunca sobrescribir cualquier archivo existente:

mv -n file1 /tmp

Si existe un comando file1, el comando anterior no hará nada; de lo contrario, copiará el archivo en el directorio /tmp.

Copia de seguridad de archivos

Si el archivo de destino existe, puede crear una copia de seguridad de él utilizando la opción -b:

mv -b file1 /tmp

El archivo de copia de seguridad tendrá el mismo nombre que el archivo original con una tilde ( ~) anexada a él.

Use el comando ls para verificar que la copia de seguridad fue creada:

ls /tmp/file1*
/tmp/file1  /tmp/file1~

Salida Verbose

Otra opción que puede ser útil es -v. Al usar esta opción, el comando imprimirá el nombre de cada archivo movido:

mv -i file1 /tmp
renamed 'file1' -> '/tmp/file1'

Notas Finales

A estas alturas ya debe tener una buena comprensión de cómo usar el comando mv para mover archivos y directorios. Los nuevos usuarios de Linux que están intimidados por la línea de comandos pueden usar el administrador de archivos GUI para mover sus archivos.