25 Comando mv práctico en Linux para usuarios cotidianos

El comando mv se usa para mover y / o renombrar archivos en de . Los administradores del sistema utilizan regularmente mv para realizar operaciones en el sistema de archivos de Linux. No se preocupe si es un usuario principiante con poco o ningún conocimiento sobre este comando. Hoy, hemos preparado esta guía para brindarle toda la información que necesita sobre la utilidad mv. Aprenderá las diversas funciones asociadas con este comando y obtendrá la experiencia necesaria al ejecutar los comandos de ejemplo que se muestran a continuación. Afortunadamente para ti, mv es uno de los más y bastante fácil de dominar.

Ejemplo esencial del comando mv de Linux

Dado que mv ofrece solo un puñado de parámetros de línea de comandos, es muy sencillo de aprender. Sin embargo, mv también es muy robusto y, cuando se usa de manera inteligente, puede realizar operaciones complejas con archivos. Así que revise los comandos a continuación y vea cómo podemos usar mv en nuestra computación diaria.

Comando mv de Linux

1. Mueva archivos directamente

En su uso simple, mv copia el archivo de origen en el directorio de destino y elimina el origen de su ubicación anterior. Por ejemplo, hemos creado un directorio simple llamado Test, que contiene un directorio llamado dir1 y un archivo de texto llamado test . Puede crearlos fácilmente usando los siguientes comandos.

$ mkdir Test && cd Test/ && mkdir dir1 && touch test
$ tree
$ mv test dir1/

Primero, creamos los archivos y directorios y luego usamos el comando de árbol para visualizar la jerarquía del sistema de archivos. El comando final es la operación que nos interesa. Mueve el archivo de prueba al directorio dir1 . Entonces, el primer argumento de mv es la fuente y el segundo es el destino. Puede reutilizar el árbol para mostrar la nueva jerarquía.

2. Cambiar el nombre de los archivos

La sintaxis para mover y renombrar archivos es la misma. Pero debemos proporcionar el nuevo nombre en lugar del destino. En términos simples, cuando usa mv en dos archivos que residen en el mismo sistema de archivos de Linux, resultará en una operación de cambio de nombre de archivo.

$ cd dir1
$ mv test TEST

Ahora simplemente regrese al directorio principal y vuelva a ejecutar el comando del árbol. Esto verificará que no tenga ningún archivo llamado test en este sistema de archivos. Debería ver el archivo que hay un nuevo archivo llamado TEST .

3. Evite la sobrescritura de archivos

De forma predeterminada, mv sobrescribirá cualquier archivo que tenga el mismo nombre en el directorio de destino. Puede verificar esto usando los siguientes comandos.

$ cp TEST dir1
$ mv TEST dir1/TEST
$ tree

Sin embargo, podemos evitar fácilmente dicha sobrescritura usando la opción -n , como se muestra en el siguiente ejemplo.

$ cp dir1/TEST .
$ mv -n TEST dir1/TEST
$ tree

Ahora podemos ver que nuestro sistema de archivos contiene ambos archivos. La opción -n también tiene una forma larga llamada –no-clobber . Pruébelos ambos si quiere recordarlos durante algún tiempo.

4. Habilite el modo interactivo al sobrescribir archivos

También puede configurar el modo interactivo en mv, lo que da como resultado un mensaje que le pregunta si desea sobrescribir el archivo de destino o no. Aunque es útil para los usuarios principiantes, es obvio que esto detendrá sus scripts de automatización.

$ mv -i TEST dir1/TEST
mv: overwrite 'dir1/TEST'?

Simplemente escriba y o n en el indicador anterior para habilitar / deshabilitar la sobrescritura de archivos. También puede utilizar la alternativa de forma larga –interactive en lugar de -i .

5. Cree copias de seguridad antes de sobrescribir archivos

Siempre es una buena idea . Los usuarios que inician Linux a menudo sobrescriben sus archivos de mala gana. Afortunadamente, mv nos permite realizar copias de seguridad de nuestros archivos de destino con bastante facilidad. Eche un vistazo rápido a la siguiente ilustración para ver cómo funciona.

$ mv --backup TEST dir1/TEST
$ tree

La salida del comando de árbol muestra que el archivo de origen se ha movido correctamente y que hay un archivo adicional llamado TEST en el directorio de destino. Es la copia de seguridad del archivo anterior. Utilice siempre esta opción cuando no esté seguro del directorio de destino exacto o de los archivos asociados.

6. Configure el sufijo personalizado para los archivos de copia de seguridad

Como ya hemos visto, mv usa el símbolo como su sufijo de respaldo predeterminado. Sin embargo, podemos cambiar esto a cualquier otra cosa usando la opción -S . El siguiente ejemplo demuestra esto usando un nuevo sufijo de respaldo. BKP.

$ mv -S .BKP TEST dir1
$ mv --suffix=.BKP TEST dir1

También puede utilizar la opción –suffix en lugar de -S si lo desea. Establecer sufijos personalizados para nuestros archivos de respaldo hace que sea más fácil identificarlos y tener .

sufijo de copia de seguridad personalizado para mv

7. Actualizar el archivo de destino

El comando mv de Linux nos permite actualizar los archivos de destino en función de su disponibilidad y marca de tiempo. En este caso, la operación de movimiento tendrá éxito solo si el archivo de origen es más reciente que el archivo de destino o si el archivo de destino falta por completo.

$ rm -ri *
$ mkdir dir1 && touch test dir1/test
$ mv -u test dir1/

Primero, borramos todo el contenido de Test / y luego los volvimos a crear. Hice esto, por lo que ambos archivos de prueba se crean al mismo tiempo y, por lo tanto, son iguales. Ahora, cuando intento mover la prueba a dir1 , el movimiento falló y salió silenciosamente. Esto sucedió ya que mv descubrió que eran iguales y dedujo que no se requiere actualización.

8. Configure el contexto de seguridad de SELinux como predeterminado

El contexto de seguridad de SELinux etiqueta los recursos de la CPU en los sistemas donde está habilitado. Utiliza esta información para identificar si un determinado recurso es accesible por un usuario específico o no. Puede establecer fácilmente el contexto de SELinux en el valor predeterminado utilizando la opción -Z , como se muestra a continuación.

$ touch new         # create another file for testing
$ mv -Z new dir1/
$ mv --context new dir1/
$ ls -Z dir1/

Aquí, mv usa el contexto SELinux predeterminado de su sistema cuando mueve el nuevo nombre de archivo a su nuevo destino. Puede verificar esto usando el último comando que se muestra arriba.

9. Habilite la salida detallada

Como muchos comandos tradicionales de terminal de Linux, el comando mv también nos permite mostrar una salida detallada de sus operaciones. Es especialmente útil para principiantes o cuando está de un sistema de archivos a otro.

$ mv -v dir1/new .

$ mv --verbose dir1/new .
renamed 'dir1/new' -> './new'

Los comandos anteriores son equivalentes y transfieren el archivo dir1 / new a nuestra carpeta de prueba . Tenga en cuenta que el período ‘ . El símbolo ‘se refiere al directorio actual en sistemas operativos similares a Unix. Estos comandos deben proporcionar una breve explicación de la operación del archivo subyacente.

10. Habilite el directorio de destino

A veces, mv puede tener dificultades para asignar los archivos de origen al directorio de destino como lo desea el usuario. Puede suceder si mv no puede deducir si el destino es un directorio de destino o un archivo. Afortunadamente, podemos decirle fácilmente a mv si se supone que el argumento de destino es un directorio o un archivo usando la opción -t de mv.

$ mv -t dir1/new/ new
$ mv --target-directory=dir1/new/ new

Cuando emite el comando anterior, mv reubica el archivo llamado new desde el directorio Test al directorio Test / dir1 / new . Observe que estamos pasando el directorio de destino antes que el argumento fuente. Es obligatorio ya que -t señala el objetivo de destino.

11. Deshabilitar el directorio de destino

La utilidad mv también nos permite deshabilitar el destino de destino por completo. Esto es útil cuando desea asegurarse de que sus argumentos de destino se traten como archivos normales de Linux. Como en el ejemplo anterior, este comando también tiene una forma corta y una larga.

$ mv dir1/new/new .
$ mv -T new dir1/new/
$ mv --no-target-directory new dir1/new/

Entonces, mv tratará el destino como un archivo normal cuando usemos la opción -T o –no-target-directory .

12. Habilitar forzar sobrescritura

Aunque las implementaciones modernas del comando mv de Linux no solicitan antes de sobrescribir hoy, mv todavía ofrece una opción útil para habilitar la sobrescritura forzada. Puede usar esta opción para asegurarse de que sus sean compatibles con versiones anteriores y no se rompan en sistemas con una implementación mv diferente.

$ mv -f test dir1/test
$ mv --force test dir1/test

Ambos comandos anteriores son equivalentes y realizan la operación de movimiento sin pedir confirmación al usuario. Por lo tanto, sus scripts de automatización no se romperían debido a mv.

13. Quitar barras finales

Cuando usa la función de autocompletar en , también agrega una barra al final de cada directorio. Puede plantear problemas durante los movimientos de archivos. Entonces, los desarrolladores de mv también crearon una opción útil que eliminará estas barras finales por usted.

$ mv --strip-trailing-slashes dir1/new/ .

La opción –strip-trailing-slashes le dice a mv que elimine cualquier barra final presente en los argumentos SOURCE. Puede resultar muy útil en determinados escenarios, por lo que conviene familiarizarse con esta opción.

14. Mover varios archivos

Los usuarios de Linux pueden usar mv para mover fácilmente una gran cantidad de archivos al mismo tiempo. El siguiente comando demuestra cómo mover más de un archivo usando mv.

$ touch aaa bbb ccc
$ mv aaa bbb ccc dir1/

También podemos mover archivos y directorios juntos. En este caso, mv interpreta el último argumento como la carpeta de destino. También puede utilizar la opción -t para especificar el destino de destino.

mover varios archivos

15. Mover archivos con comodines

El comando mv de Linux no admite expresiones regulares. Sin embargo, aún puede utilizar algunos caracteres comodín para realizar algunas . Eche un vistazo rápido al siguiente ejemplo para ver cómo podemos usar comodines con mv.

$ touch aaa.mp3 bbb.mp3 ccc.mp3
$ mv *.mp3 dir1/ # moves all mp3 files
$ touch AAA BBB CCC
$ mv [[:upper:]]* dir1   # moves all files that has uppercase names
$ mv *[[:lower:]] dir1   # moves all files that has lowercase names

Hay algunos comodines más compatibles con mv. Aunque no son muy extensos, ayudan durante las operaciones de procesamiento de archivos de rutina.

16. Mostrar barra de progreso

Normalmente, el comando mv realiza sus operaciones dentro de un período de tiempo razonable. Sin embargo, puede llevar relativamente más tiempo si mueve documentos muy grandes. Los usuarios pueden incluso pensar que el sistema se ha colgado si tarda demasiado. Podemos evitar este problema obligando a mv a mostrar una barra de progreso que mantiene informado al usuario.

$ mv dir1/*.mp3 . & progress -mp $!

Este comando moverá todos los archivos mp3 de dir1 / al directorio de prueba y mostrará un medidor de progreso práctico. Estamos usando el paquete de Linux ‘progreso ‘ para esto. Puede instalar esto usando el siguiente comando.

$ sudo apt install progress

17. Mover archivos mediante la expansión de llaves

El shell de comandos de Linux permite a los usuarios generar combinaciones literales utilizando un método llamado expansión de llaves. Aunque muchas personas tienden a complicar esto, en la práctica, es bastante simple. Eche un vistazo de cerca a los siguientes ejemplos para aprender cómo funciona la expansión de llaves en .

$ rm new && touch new.txt new.pdf new.html
$ mv new.{pdf,txt,html} dir1/new/ # brace expansion

Por lo tanto, cualquier archivo llamado nuevo que tenga extensiones .pdf / .txt / .html se moverá al directorio de destino. Dado que estamos generando los literales de nombre de archivo a partir de nuestra llave, llamamos a esta operación expansión de llaves.

18. Mover archivos según el tamaño

El procesamiento de archivos implica muchas operaciones de movimiento y los archivos grandes tienden a requerir una cantidad significativa de tiempo de CPU. Por lo tanto, muchos administradores realizan copias de seguridad de sus documentos en función de su tamaño. Mostramos a los lectores cómo mover archivos según su tamaño usando los comandos mv y find.

$ find . -type f -size +1G -exec mv "{}" large_files/ \;

El comando anterior moverá todos los archivos de más de 1 GB del directorio de trabajo actual a large_files . Simplemente puede cambiar el valor del parámetro de tamaño para personalizar su operación de movimiento.

19. Mover archivos según la fecha de modificación

La fecha de modificación es otro criterio común que se utiliza al realizar una copia de seguridad de los datos del sistema. Puede encontrar todos los archivos que sean más antiguos que una cantidad de tiempo específica usando el siguiente comando.

$ find . -mtime +90 -exec mv "{}" old_files/ \;

Este comando moverá todos los archivos que tengan más de 3 meses (90 días) a un nuevo directorio llamado old_files . Lo notable aquí es que el argumento proporcionado está en días.

20. Cambiar el nombre de varios archivos

De forma predeterminada, la utilidad mv no puede cambiar el nombre de varios archivos al mismo tiempo. Sin embargo, todavía podemos usar otras herramientas como find junto con mv para operaciones de archivo tan avanzadas. El siguiente comando cambiará el nombre de todos los archivos .php a archivos .html.

$ touch {test1,test2,test3}.php
$ find . -depth -name "*.php" -exec sh -c 'f="{}"; mv -- "$f" "${f%.php}.html"' \;

Este comando cambiará el nombre de cada archivo .php a archivo .html usando mv, y el interruptor exec del .

cambiar el nombre de varios archivos

21. Localice la información binaria del comando mv de Linux

Podemos averiguar dónde está ubicado el comando mv usando el comando “which” de Linux. Imprime el nombre de las rutas o enlaces que manejan un comando específico, como mv.

$ which mv
/usr/bin/mv

También puede usar el comando “whereis” en Linux para mostrar información adicional como la ubicación del binario mv y todos los archivos manuales asociados, como se muestra a continuación.

$ whereis mv
mv: /usr/bin/mv /usr/share/man/man1/mv.1.gz

22. Mostrar información sobre la versión

La información de la versión de los comandos de la terminal de Linux nos permite encontrar la versión específica de un paquete. Podemos ver fácilmente la información de esta versión para mv, como se muestra en el siguiente ejemplo.

$ mv --version

Imprimirá la información de la versión del paquete mv instalado en su sistema junto con otra información. Esta información incluye el nombre de las dependencias y las personas que crearon mv.

23. Mostrar página de ayuda

La página de ayuda contiene información resumida de todas las opciones disponibles para la utilidad mv. Es una forma práctica de recordar opciones poco utilizadas.

$ mv --help

Dado que mv admite solo unos pocos argumentos de la línea de comandos, es relativamente más fácil memorizarlos. Afortunadamente, siempre puede consultar la página de ayuda para obtener información rápida sobre cualquier opción en particular.

24. Mostrar página de manual

Al contrario de la información resumida proporcionada por la ayuda, la página de manual ofrece una visión mucho más detallada. Consulte el siguiente comando siempre que desee comprender una opción o un uso específico con más detalle.

$ man mv

Debería mostrar una guía detallada que explique todas las diferentes opciones disponibles para mv. Siempre debe pasar por la página del manual antes de probar cualquier comando que modifique el sistema de archivos.

25. Comprobar alias

Muchas distribuciones de Linux utilizan alias preconfigurados para hacer cumplir las opciones estándar de la línea de comandos para los paquetes. Puede verificar fácilmente si mv es un alias de algo usando el siguiente comando.

$ alias | grep -iw mv
$ type mv

Sin embargo, el último comando no funcionará si su sistema Linux ha codificado el comando mv.

Pensamientos finales

El comando mv de Linux nos permite realizar muchas operaciones de archivos como mover archivos, renombrarlos, crear copias de seguridad, etc. Aunque solo permite un número limitado de opciones, podemos combinar mv con muchos comandos de terminal de Linux como el comando find y crear combinaciones de comandos más complejas. Hemos resumido los 25 mejores ejemplos de MV en la informática diaria. Algunos de ellos son puramente básicos, mientras que otros pueden resultar útiles a la hora de resolver problemas más dinámicos. Con suerte, hemos entregado la información esencial que estaba buscando. Publique sus pensamientos en la sección de comentarios y háganos saber si tiene alguna pregunta.

Leave a Comment

Your email address will not be published.