Introducción
Mover archivos y directorios es una de las tareas básicas que a menudo se deben realizar en un sistema Linux.
En este tutorial, explicaremos cómo usar el mv
para mover archivos y directorios.
Cómo usar el comando mv
El mv
(abreviado como mover) se usa para cambiar el nombre y mover archivos y directorios de una ubicación a otra. La sintaxis del mv
es la siguiente:
mv [OPTIONS] SOURCE DESTINATION
El SOURCE
puede ser uno o más archivos o directorios, y DESTINATION
puede ser un solo archivo o directorio.
- Cuando se hace referencia a varios archivos o directorios como
SOURCE
,DESTINATION
debe ser un directorio. En este caso, losSOURCE
se mueven al directorio de destino. - Si especifica un solo archivo como
SOURCE
y elDESTINATION
es un directorio existente, el archivo se mueve al directorio especificado. - Si especifica un solo archivo como
SOURCE
y un solo archivo comoDESTINATION
, está cambiando el nombre del archivo. - Cuando
SOURCE
es un directorio yDESTINATION
no existe,SOURCE
pasará a llamarseDESTINATION
. De lo contrario, siDESTINATION
existe, se puede mover dentro del directorioDESTINATION
Para mover un archivo o directorio, debe tener permisos de escritura tanto en SOURCE
como en DESTINATION
. De lo contrario, obtendrá un error de permiso denegado.
Por ejemplo, para mover el archivo file1
del directorio de trabajo actual al /tmp
, ejecute:
mv file1 /tmp
Para cambiar el nombre de un archivo, debe especificar el nombre del archivo de destino:
mv file1 file2
La sintaxis para mover directorios es la misma que para mover archivos. En el siguiente ejemplo, si dir2
, el comando moverá dir1
dentro de dir2
. Si dir2
no existe, dir1
cambiará de nombre a dir2
:
mv dir1 dir2
Mover varios archivos y directorios
Para mover varios archivos y directorios, especifique los archivos que desea mover como origen. Por ejemplo, para mover archivos file1
y file2
al directorio dir1
escriba:
mv file1 file2 dir1
El mv
también le permite utilizar la coincidencia de tipos de archivos. Por ejemplo, para mover todos los pdf
del directorio actual al directorio ~/Documents
, use:
mv *.pdf ~/Documents
Opciones de comando de mv
El mv
acepta varias opciones que afectan el comportamiento predeterminado del comando.
En algunas distribuciones de Linux, mv
puede ser un alias del mv
con un conjunto personalizado de opciones. Por ejemplo, en CentOS mv
es un alias de mv -i
. Puede averiguar 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 se dan opciones contradictorias, la última tiene prioridad.
Pregunte antes de sobrescribir
De forma predeterminada, si el archivo de destino existe, se sobrescribirá. Para solicitar confirmación, use la opción -i
mv -i file1 /tmp
mv: overwrite '/tmp/file1'?
Para anular el tipo de archivo, escriba y
Y
Forzar sobrescritura
Si intenta sobrescribir un archivo de solo lectura, el mv
le preguntará si desea sobrescribir el archivo:
mv -i file1 /tmp
mv: replace '/tmp/file1', overriding mode 0400 (r--------)?
Para evitar pedir confirmación, use las opciones -f
mv -f file1 /tmp
Esta opción es especialmente útil cuando necesita sobrescribir varios archivos de solo lectura.
No sobrescriba archivos existentes
La -n
permite que el mv
nunca sobrescriba ningún archivo existente:
mv -f file1 /tmp
Si file1
, el comando anterior no hará nada. De lo contrario, moverá el archivo al directorio /tmp
Copia de seguridad de archivos
Si el archivo de destino existe, puede crear una copia de seguridad del mismo usando la opción -b
mv -b file1 /tmp
El archivo de respaldo tendrá el mismo nombre que el archivo original con una tilde ( ~
) añadida.
Utilice el comando ls para verificar que se creó la copia de seguridad:
ls /tmp/file1*
/tmp/file1 /tmp/file1~
Salida detallada
Otra opción que puede resultar útil es -v
. Cuando se usa esta opción, el comando imprime el nombre de cada archivo movido:
mv -i file1 /tmp
renamed 'file1' -> '/tmp/file1'
Conclusión
El mv
se usa para mover y cambiar el nombre de archivos y directorios.
Para obtener más información sobre el mv
, ejecute este comando desde la terminal:
man mv