Saltar al contenido

25 Comandos mv básicos en Linux que debes aprender

May 15, 2020
25 Comandos mv prácticos en Linux que debes aprender

El comando mv se usa para mover y / o renombrar archivos en distribuciones de Linux y BSD. 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 comandos de terminal de Linux más básicos y bastante fácil de dominar.

Ejemplo esencial del comando mv de Linux

Como 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 de archivos.

1. Mover archivos directamente

En su uso simple, mv copia el archivo fuente en el directorio de destino y elimina la fuente 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 con 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 del árbol para visualizar la jerarquía del sistema de archivos. El comando final es la operación que nos interesa. Mueve la prueba de archivo 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. Renombrar 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, dará como resultado una operación de cambio de nombre de archivo.

$ cd dir1
$ mv test TEST

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

3. Evitar sobrescribir archivos

Por defecto, mv sobrescribirá cualquier archivo que tenga el mismo nombre en el directorio de destino. Puede verificar esto utilizando los siguientes comandos.

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

Sin embargo, podemos evitar fácilmente dicha sobrescritura utilizando la opción -n , como se demuestra 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ébalos si quieres recordarlos por 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 yn en el indicador anterior para habilitar / deshabilitar la sobrescritura de archivos. También puede usar la alternativa de forma larga –interactiva en lugar de -i .

5. Crear copias de seguridad antes de sobrescribir archivos

Siempre es una buena idea crear copias de seguridad antes de realizar operaciones de archivos a gran escala . Los usuarios principiantes de Linux a menudo sobrescriben sus archivos de mala gana. Afortunadamente, mv nos permite hacer una copia 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 del árbol muestra que el archivo fuente se ha movido con éxito 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 los archivos asociados.

6. Establecer sufijo personalizado para archivos de copia de seguridad

Como ya hemos visto, mv usa el símbolo ~ como 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 usar 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 una mejor comprensión del sistema de archivos de Linux .

7. Actualizar 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 nuevo que el archivo de destino o si el archivo de destino no se encuentra.

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

Primero, eliminamos todo el contenido de Prueba / 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 los mismos. Ahora, cuando trato de mover la prueba a dir1 , el movimiento falló y salió en silencio. Esto sucedió ya que mv los encontró iguales y dedujo que no se requiere actualización.

8. Configurar el contexto de seguridad de SELinux como predeterminado

El contexto de seguridad SELinux etiqueta los recursos de la CPU en los sistemas donde está habilitado. Utiliza esta información para identificar si un usuario específico puede acceder a un recurso determinado o no. Puede establecer fácilmente el contexto 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 nombre del archivo nuevo a su nuevo destino. Puede verificar esto utilizando el último comando que se muestra arriba.

9. Habilitar salida detallada

Al igual que muchos comandos de terminal de Linux tradicionales, el comando mv también nos permite mostrar resultados detallados de sus operaciones. Es especialmente útil para principiantes o cuando transfiere muchos archivos 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 Test . Tenga en cuenta que el período ‘ . El símbolo ‘se refiere al directorio actual en sistemas operativos tipo 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 según lo desee 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 utilizando la opción -t de mv.

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

Cuando ejecuta el comando anterior, mv reubica el archivo llamado nuevo desde el directorio de prueba al directorio de prueba / dir1 / nuevo . Observe que estamos pasando el directorio de destino antes del argumento de origen. Es obligatorio ya que -t señala el objetivo de destino.

11. Desactivar directorio de destino

La utilidad mv también nos permite deshabilitar el destino objetivo por completo. Esto es útil cuando desea asegurarse de que sus argumentos de destino se traten como archivos normales de Linux. Al igual que 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 la sobrescritura forzada

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

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

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

13. Eliminar las barras inclinadas

Cuando utiliza la finalización automática en terminales Linux , también agrega una barra inclinada final después de cada directorio. Puede plantear problemas durante los movimientos del archivo. Entonces, los desarrolladores de mv también crearon una práctica opción que eliminará estas barras diagonales 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 ser muy útil en ciertos escenarios, por lo que debe familiarizarse con esta opción.

14. Mover múltiples archivos

Los usuarios de Linux pueden usar mv para mover fácilmente una gran cantidad de archivos al mismo tiempo. El siguiente comando muestra cómo mover más de un archivo juntos 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.

15. Mover archivos usando comodines

El comando mv de Linux no admite expresiones regulares. Sin embargo, aún puede usar algunos caracteres comodín para realizar algunas coincidencias de patrones básicos . 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 es muy extenso, 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 plazo razonable. Sin embargo, puede llevar relativamente más tiempo cuando mueve documentos muy grandes. Los usuarios pueden incluso pensar que el sistema se ha colgado si lleva demasiado tiempo. Podemos evitar este problema forzando a mv a mostrar una barra de progreso que mantenga 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 utilizando el paquete de Linux ‘progreso ‘ para esto. Puede instalar esto usando el siguiente comando.

$ sudo apt install progress

17. Mover archivos usando 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 Linux y otros sistemas similares a Unix .

$ 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. Como estamos generando los literales de nombre de archivo de nuestra llave, llamamos a esta operación expansión de llave.

18. Mover archivos según el tamaño

El procesamiento de archivos implica muchas operaciones de movimiento, y los archivos grandes tienden a tomar una cantidad significativa de tiempo de CPU. Por lo tanto, muchos administradores hacen una copia de seguridad de sus documentos en función de su tamaño. Le mostramos a los lectores cómo mover archivos en función de su tamaño utilizando 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 archivos_grandes . 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 usa al hacer una copia de seguridad de los datos del sistema. Puede encontrar todos los archivos que son 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 es en días.

20. Renombrar múltiples 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 encontrar 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 conmutador exec del comando find de Linux .

21. Busque información binaria del comando mv de Linux

Podemos averiguar dónde se encuentra el comando mv utilizando el comando Linux “which”. 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 de la versión

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

$ mv --version

Imprimirá la información de la versión del paquete mv instalado en su sistema junto con alguna otra información. Esta información incluye el nombre de las dependencias y 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 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

Contrariamente a la información resumida proporcionada por la ayuda, la página del 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

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

25. Comprobar alias

Muchas distribuciones de Linux usan alias preconfigurados para aplicar opciones de línea de comandos estándar para paquetes. Puede verificar fácilmente si mv es un alias de algo utilizando el siguiente comando.

$ alias | grep -iw mv
$ type mv

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

El comando mv de Linux nos permite realizar muchas operaciones de archivo, 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 esbozado los 25 mejores ejemplos de mv en informática cotidiana. Algunos de ellos son puramente básicos, mientras que otros pueden ser útiles para resolver problemas más dinámicos. Con suerte, hemos entregado los conocimientos esenciales que estaba buscando. Publique sus pensamientos en la sección de comentarios y háganos saber si tiene alguna pregunta.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies