Comando mv de Linux explicado para principiantes (8 ejemplos)

Cómo usar el comando mv en Linux

Al igual que cp para copiar y rm para eliminar, Linux también ofrece un comando incorporado para mover y renombrar archivos. Se llama m.v.. En este artículo, discutiremos los conceptos básicos de esta herramienta de línea de comandos usando ejemplos fáciles de entender. Tenga en cuenta que todos los ejemplos utilizados en este tutorial se han probado en Ubuntu 20.04 LTS.

comando linux mv

Como ya se mencionó, el comando mv en Linux se usa para mover o renombrar archivos. La siguiente es la sintaxis del comando:

mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...

Y esto es lo que dice la p√°gina del manual al respecto:

Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.

Los siguientes ejemplos con estilo de preguntas y respuestas le darán una mejor idea de cómo funciona esta herramienta.

Q1. ¬ŅC√≥mo usar el comando mv en Linux?

Si solo desea cambiar el nombre de un archivo, puede usar el comando mv de la siguiente manera:

mv [filename] [new_filename]

Por ejemplo:

mv names.txt fullnames.txt

Cómo usar el comando mv en Linux

De manera similar, si el requisito es mover un archivo a una nueva ubicación, use el comando mv de la siguiente manera:

m.v. [filename] [dest-dir]

Por ejemplo:

mv fullnames.txt /home/himanshu/Downloads

comando linux mv

Q2. ¬ŅC√≥mo asegurarse de que mv indique antes de sobrescribir?

De forma predeterminada, el comando mv no aparece cuando la operación implica sobrescribir un archivo existente. Por ejemplo, la siguiente captura de pantalla muestra que el archivo full_names.txt existente fue sobrescrito por mv sin ninguna advertencia o notificación.

Cómo asegurarse de que mv indique antes de sobrescribir

Sin embargo, si lo desea, puede obligar a mv a solicitarlo utilizando el -i opción de línea de comandos.

mv-yo [file_name] [new_file_name]

la opción de comando -i

Entonces, las capturas de pantalla anteriores muestran claramente que -i lleva a mv a pedir permiso al usuario antes de sobrescribir un archivo existente. Tenga en cuenta que en caso de que desee especificar explícitamente que no desea que mv solicite antes de sobrescribir, utilice el -F opción de línea de comandos.

Q3. ¬ŅC√≥mo hacer que mv no sobrescriba un archivo existente?

Para ello, es necesario utilizar el -norte opción de línea de comando.

mv -n [filename] [new_filename]

La siguiente captura de pantalla muestra que la operaci√≥n mv no tuvo √©xito porque ya exist√≠a un archivo con el nombre ‘full_names.txt’ y el comando ten√≠a la opci√≥n -n.

Cómo hacer que mv no sobrescriba un archivo existente

Nota:

If you specify more than one of -i, -f, -n, only the final one takes effect.

Q4. ¬ŅC√≥mo hacer que mv elimine las barras inclinadas finales (si las hay) del argumento fuente?

Para eliminar las barras diagonales finales de los argumentos de origen, utilice el –strip-trailing-slashes opci√≥n de l√≠nea de comandos como se muestra a continuaci√≥n.

mv --strip-trailing-slashes [source] [dest]

Así es como la documentación oficial explica la utilidad de esta opción:

This is useful when a source argument may have a trailing slash and specify a symbolic link to a directory. This scenario is in fact rather common because some shells can automatically append a trailing slash when performing file name completion on such symbolic links. Without this option, mv, for example, (via the system’s rename function) must interpret a trailing slash as a request to dereference the symbolic link and so must rename the indirectly referenced directory and not the symbolic link. Although it may seem surprising that such behavior be the default, it is required by POSIX and is consistent with other parts of that standard.

P5. ¬ŅC√≥mo hacer que mv trate el destino como un archivo normal?

Para asegurarse de que la entidad de destino se trate como un archivo normal (y no como un directorio), use el -T opción de línea de comandos.

mv -T [source] [dest]

He aquí por qué existe esta opción de línea de comandos:

This can help avoid race conditions in programs that operate in a shared area. For example, when the command ‚Äėmv /tmp/source /tmp/dest‚Äô succeeds, there is no guarantee that /tmp/source was renamed to /tmp/dest: it could have been renamed to/tmp/dest/source instead, if some other process created /tmp/dest as a directory. However, if mv -T /tmp/source /tmp/dest succeeds, there is no question that/tmp/source was renamed to /tmp/dest.
In the opposite situation, where you want the last operand to be treated as a directory and want a diagnostic otherwise, you can use the --target-directory (-t) option.

P6. ¬ŅC√≥mo hacer que mv mueva el archivo solo cuando es m√°s nuevo que el archivo de destino?

Suponga que existe un archivo llamado fullnames.txt en el directorio de Descargas de su sistema, y ‚Äč‚Äčhay un archivo con el mismo nombre en su directorio de inicio. Ahora, desea actualizar ~/Downloads/fullnames.txt con ~/fullnames.txt, pero solo cuando este √ļltimo sea m√°s nuevo. Entonces, en este caso, tendr√°s que usar el -tu opci√≥n de l√≠nea de comandos.

mv -u ~/fullnames.txt ~/Downloads/fullnames.txt

Esta opci√≥n es particularmente √ļtil en los casos en que necesita tomar tales decisiones desde un script de shell.

P7. ¬ŅC√≥mo hacer que mv emita detalles de todo lo que est√° haciendo?

Si desea que mv genere información que explique qué está haciendo exactamente, use el -v opción de línea de comandos.

mv -v [filename] [new_filename]

Por ejemplo, las siguientes capturas de pantalla muestran mv emitiendo algunos detalles √ļtiles de lo que hizo exactamente.

Cómo hacer que mv emita detalles de todo lo que está haciendo

P8. ¬ŅC√≥mo forzar a mv a crear una copia de seguridad de los archivos de destino existentes?

Esto lo puedes hacer usando el -b opci√≥n de l√≠nea de comandos. El archivo de respaldo creado de esta manera tendr√° el mismo nombre que el archivo de destino, pero con una tilde (~) a√Īadida. Aqu√≠ hay un ejemplo:

Cómo forzar mv para crear una copia de seguridad de los archivos de destino existentes

Conclusión

Como ya habrá adivinado, mv es tan importante como cp y rm por la funcionalidad que ofrece: después de todo, renombrar/mover archivos también es una de las operaciones básicas. Hemos discutido la mayoría de las opciones de línea de comandos que ofrece esta herramienta. Entonces puedes practicarlos y comenzar a usar el comando. Para saber más sobre mv, dirígete a su página man.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *