Saltar la navegación

mv

La orden mv sirve para mover ficheros y directorios a otros directorios y para cambiarles el nombre. En realidad se trata solamente de un trabajo sobre las entradas de los directorios, al contenido de los ficheros (bloques de datos) no se accede.

La sintaxis general para mover ficheros y directorios a un directorio destino respetando todos los nombres, es la siguiente:

mv [opción...]  {fich_fuente | dir_fuente}...  dir_destino

Así la orden:

$ mv carta.txt solicitud.txt recetas documentos

mueve los ficheros carta.txt y solicitud.txt al directorio documentos, y el directorio recetas se mueve también, de forma completa, no solo su contenido, así que ahora recetas cuelga de documentos.

Las acciones que ha realizado mv en el ejemplo anterior han consistido en quitar tres entradas del directorio de trabajo y crearlas igual (mismo nodo-i, mismo nombre) en el directorio documentos.

Si lo que queremos es cambiar el nombre de un fichero:

mv [opción...]  fich_fuente  fich_destino_no_existente

o el nombre de un directorio:

mv [opción...]  dir_fuente  dir_destino_no_existente

En estos dos últimos casos la orden mv también lo único que hace es modificar entradas de directorios.

Hay que tener cuidado con la orden mv cuando el destino existe, ya que si le cambiamos el nombre a un fichero por otro que ya existe, se perderá este último, y lo mismo sucede con los directorios. Para evitarlo debemos usar las opciones -i o -b de mv.

Opciones de la orden mv son:

-u Hace el movimiento del fichero si origen es más reciente que destino.
-n No sobrescribe si destino ya existe.
-i Si destino existe entonces mv pregunta al usuario si desea reescribirlo.
-f Si destino existe entonces mv lo sobrescribe y no da error (opción por defecto).  
-b Si destino existe entonces mv le hace una copia de seguridad.
-S extensión Extensión que se añadirá a las copias de seguridad. Por defecto se usa la ~.
-v Muestra por la salida estándar los ficheros o directorios que va moviendo.
$ ls
f.txt  g.txt
$ mv -b f.txt g.txt
$ ls
g.txt  g.txt~

El comando mv es un ejemplo de comando que no usa ni la entrada estándar ni la salida estándar.

Licencia: licencia de software libre GPL