Cómo usar el comando de cambio de nombre en Linux
Domina el poder de renombrar archivos del mundo Linux, permitiéndote a ti y a tumv
Date un respiro.Rename
Flexible, rápido y, a veces, incluso más fácil. Aquí hay un poderoso tutorial sobre un comando.
¿Qué tiene de malo mv?
correctomv
. El comando hace un buen trabajo, que está presente en todas las distribuciones de Linux, macOS y otros sistemas operativos similares a Unix. Así que siempre está disponible. Pero a veces solo necesitas una excavadora, no una pala.
Deberíamv
Los comandos tienen un propósito en la vida y es mover archivos. Este es un efecto secundario feliz, y se puede usar para mover un archivo existente a un archivo nuevo con un nombre nuevo. El efecto final es cambiar el nombre del archivo, por lo que obtenemos lo que queremos.peromv
No es una herramienta de cambio de nombre de archivo dedicada.
Use mv para cambiar el nombre de un solo archivo
pormv
Renombrar tipo de archivomv
, un espacio, el nombre del archivo, un espacio y el nuevo nombre que desea que tenga el archivo. Luego presiona enter.
puedes usarlols
para comprobar si el archivo ha sido renombrado.
mv archivo antiguo.txt archivo nuevo.txt
ls*.txt
Use mv para cambiar el nombre de varios archivos
Las cosas se complican cuando desea cambiar el nombre de varios archivos.mv
No se puede manejar el cambio de nombre de varios archivos. Tendrás que recurrir a algunos buenos trucos de Bash. Si conoce algunas características intermedias de la línea de comandos, está bien, pero cambiar el nombre de varios archivos tiene la misma complejidad que cambiar el nombre de un solo archivomv
La facilidad de uso contrasta marcadamente con lamv
.
Las cosas se intensificaron rápidamente.
Supongamos que tenemos un directorio que contiene varios archivos de diferentes tipos. Algunos de estos archivos tienen una extensión «.prog». Queremos cambiarles el nombre en la línea de comando para que tengan una extensión «.prg».
como lo intentamosmv
hacerlo por nosotros?Echemos un vistazo a estos archivos.
ls *.prog -l
Aquí hay una forma que no requiere escribir un archivo de script Bash real.
Para f en *.prog;hacer mv -- "$f" "${f%.prog}.prg";completo
¿eso es útil?Revisemos el archivo para ver.
ls *.pr*
Así que sí, funcionó. Ahora todos son archivos «.prg» y no hay ningún archivo «.prog» en el directorio.
¿Lo que acaba de suceder?
¿Qué hace realmente ese comando largo?Vamos a desglosarlo.
Para f en *.prog;hacer mv -- "$f" "${f%.prog}.prg";completo
La primera parte inicia un ciclo que procesa cada archivo «.prog» en el directorio a su vez.
La siguiente sección explica lo que hará el procesamiento. esomv
Se utiliza para mover cada archivo a un nuevo archivo. El nuevo archivo llevará el nombre del archivo original, excluyendo la sección «.prog». Se utilizará una nueva extensión de «.prg».
La última parte finaliza el bucle después de procesar cada archivo.
Debe haber una manera más fácil
Claramente. Esto esrename
Ordenar.
rename
No forma parte de las distribuciones estándar de Linux, por lo que deberá instalarlo. También tiene diferentes nombres en diferentes familias de Linux, pero todas funcionan de la misma manera. Solo necesita sustituir el nombre de comando apropiado para su versión de Linux.
En las distribuciones derivadas de Ubuntu y Debian, puederename
Instalar así:
sudo apt-get install renombrar
En las distribuciones derivadas de Fedora y RedHat, puedeprename
Instalar así. Tenga en cuenta la «p» inicial, que significa Perl.
sudo dnf instalar nombre previo
Para instalarlo en Manjaro Linux, use el siguiente comando. Tenga en cuenta que el comando de cambio de nombre se llamaperl-rename
.
sudo pacman -Syu perl -renombrar
hagámoslo de nuevo
Y esta vez usaremos. Lo haremosrename
Haga retroceder el reloj para que tengamos un conjunto de archivos «.prog».
ls *.prog
Ahora vamos a cambiarles el nombre usando el siguiente comando. Entonces vamos a comprobarls
Funciona. Si no usa Ubuntu o un Linux derivado de Debian, recuerderename
Sustituya el nombre de comando apropiado para su Linux.
renombrar 's/.prog/.prg/' *.prog
ls *.pr*
Esto funciona, ahora todos son archivos «.prg», no hay archivos «.prog» en el directorio.
¿Qué pasó esta vez?
Expliquemos esta magia en tres partes.
La primera parte es el nombre del comando.rename
(oprename
operl-rename
, para otras distribuciones).
la última parte es*.prog
, que cuentarename
Funciona en todos los archivos «.prog».
La sección central define lo que queremos hacer con cada nombre de archivo.s
medios de sustitución.el primer elemento (.prog
) Sírename
lo que se buscará en cada nombre de archivo, el segundo término (.prg
) es por lo que será reemplazado.
La parte media del comando, o expresión central, es un Perl ‘ expresión regular ‘Esto es lo que darename
La razón de la flexibilidad de mando.
Cambiar otras partes del nombre de archivo
Hemos cambiado la extensión del archivo hasta ahora, modifiquemos las otras partes del nombre del archivo.
Hay muchos archivos de código fuente C en el directorio. Todos los nombres de archivo tienen el prefijo «slang_». Podemos usar para comprobarls
.
ls sl*.c
Reemplazaremos todas las ocurrencias de «slang_» con «sl_». Ya estamos familiarizados con el formato del comando. Simplemente cambiamos el término de búsqueda, el término de reemplazo y el tipo de archivo.
renombrar 's/slang_/sl_/' *.c
Esta vez buscamos archivos «.c» y buscamos «slang_». Cada vez que se encuentra «slang_» en un nombre de archivo, se reemplaza con «sl_».
ls
Podemos hacer esto usando el mismo parámetroRepita el comando anterior para verificar el resultado del comando:
ls sl*.c
eliminar parte del nombre del archivo
Podemos eliminar parte del nombre del archivo reemplazando el término de búsqueda con nada.
ls *.c
renombrar 's/sl_//' *.c
ls *.c
podemos obtener dels
Como se ve en el comando, todos nuestros archivos «.c» comienzan con «sl_». Vamos a deshacernos de él por completo.
Deberíarename
Los comandos siguen el mismo formato que antes. Buscaremos archivos «.c». El término de búsqueda es «sl_», pero no hay alternativas. Dos barras invertidas sin nada en el medio no tienen significado y son una cadena vacía.
rename
Cada archivo «.c» se procesará a su vez. Buscará «sl_» en el nombre del archivo. Si se encuentra, será reemplazado por lo que sea. En otras palabras, se elimina el término de búsqueda.
segundo uso de lals
El comando confirma que el prefijo «sl_» se eliminó de cada archivo «.c».
Restrinja los cambios a partes específicas de los nombres de archivo
nos dejals
Veamos los archivos que contienen la cadena «param» en sus nombres de archivo. Entonces usaremosrename
La cadena «parámetro» reemplaza esta cadena. Lo haremosls
Utilice el comando de nuevo para ver elrename
El efecto del comando en estos archivos.
ls *parámetros*
renombrar 's/parámetro/parámetro/' *.c
ls *parámetros*
Se encontró que cuatro archivos contenían «param» en sus nombres de archivo. Los nombres de param.c, param_one.c y param_two.c comienzan con «param».third_param.c tiene «param» al final de su nombre, justo antes de la extensión.
Deberíarename
El comando buscará «parámetro» en todas partes del nombre del archivo y lo reemplazará con «parámetro» en todos los casos.
Deberíals
El segundo uso del comando nos muestra que esto es exactamente lo que sucedió. Independientemente de si «param» está al principio o al final del nombre del archivo, se ha reemplazado por «parámetro».
Podemos usar los metacaracteres de Perl para refinar el comportamiento de las expresiones intermedias. Los metacaracteres son símbolos que representan posiciones o secuencias de caracteres. P.ej,^
significa «comienzo de cadena»,$
significa «final de la cadena», y.
Representa cualquier carácter único (excepto nueva línea).
Usaremos el metacarácter de cadena (^
) restringe nuestra búsqueda al comienzo del nombre del archivo.
ls *parámetros*.c
renombrar 's/^parámetro/valor/' *.c
ls *parámetros*.c
ls-valor*.c
Al enumerar los archivos que renombramos anteriormente, podemos ver que la cadena «parámetro» está al comienzo de tres nombres de archivo y al final de uno de ellos.
nuestra ordenantes del término de búsqueda «parámetros»rename
Utilice metacaracteres de inicio de línea).(^
esto dicerename
Un término de búsqueda se considera encontrado solo si está al principio del nombre del archivo. Si la cadena de búsqueda «parámetro» está en cualquier otro lugar del nombre del archivo, se ignorará.
Controlarls
, podemos ver que los nombres de archivo con «parámetro» al final del nombre de archivo no se han modificado, pero se ha reemplazado la cadena de búsqueda de los tres nombres de archivo con «parámetro» al principio con la palabra alternativa «valor».
el poder derename
reside en el poder de Perl. todos El poder de Perl Siempre a tu servicio.
búsqueda de grupo
rename
Hay más trucos. Consideremos el caso en el que podría tener archivos con cadenas similares en sus nombres. No son exactamente la misma cadena, por lo que una simple búsqueda y reemplazo no funcionará aquí.
En este ejemplo, nosotrosls
Se usa para verificar qué archivos tenemos que comienzan con «str». Hay dos de ellos, string.c y strangle.c. Podemos cambiar el nombre de dos cadenas a la vez usando una técnica llamada agrupación.
la expresión central para este comandorename
Los nombres de archivo se buscarán en busca de cadenas con la secuencia de caracteres «stri» o «stra» seguida inmediatamente por «ng». En otras palabras, nuestro término de búsqueda buscará «cadena» y «strang». La palabra sustituta es «boom».
ls str*.c
renombrar 's/(stri|stra)ng/bang/' *.c
ls deshabilitar *.c
segundo usols
Confirme que string.c se ha convertido en bang.c y strangle.c ahora es bangle.c.
Usar traducciones con cambio de nombre
Deberíarename
Los comandos pueden realizar acciones en nombres de archivos llamados traducciones. Un ejemplo simple de traducción es forzar un conjunto de nombres de archivo a mayúsculas.
existirrename
En los comandos a continuación, tenga en cuenta que no usamos uns/
para comenzar la expresión central, pero usey/
. Esto dicerename
No realizamos el reemplazo;estamos traduciendo
el términoa-z
es una expresión de Perl que representa todos los caracteres en minúsculas en la secuencia de la a a la z. Similarmente,A-Z
Un término significa todas las letras mayúsculas en la secuencia de la A a la Z.
La expresión central del comando se puede interpretar como «Si se encuentran letras minúsculas de la a a la z en el nombre del archivo, reemplácelas con los caracteres correspondientes en la secuencia de caracteres en mayúscula de la A a la Z».
Para forzar los nombres de archivo de todos los archivos «.prg» a mayúsculas, use el siguiente comando:
Renombrar ‘y/az/AZ/’ *.prg
ls *. PRG
Deberíals
El comando nos muestra que todos los nombres de archivo «.prg» ahora están en mayúsculas. De hecho, ya no son archivos «.prg», estrictamente hablando. Son archivos «. PRG». Linux distingue entre mayúsculas y minúsculas.
Podemos hacer esto invirtiendo la expresión del centro ena-z
y términosposición para invertir el último comando.A-Z
Renombrar ‘y/AZ/az/’ *. PRG
ls *.prg
Usted (no | No) aprenderá Perl en cinco minutos
Vale la pena dominar Perl. Pero para empezar a usar elrename
Una característica del comando que ahorra tiempo, no necesita mucho conocimiento de Perl para obtener los enormes beneficios en términos de funcionalidad, simplicidad y tiempo.
comandos de linux | ||
documento | asfalto · fotovoltaica · gato · táctica · modo de cambio · grep · diferencia · sed · Arkansas · hombre · para empujar · ventana emergente · fsck · disco de prueba · número de serie · f.d. · pandoc · CD · $ruta · awk · participar · jq · doblar · Único · diarioctl · Cola · estado · ls · mesa de estabilidad · eco · menos · chgrp · Chon · Velocidad de rotación · Mirar · cuerda · escribe · cambiar nombre · compresión · abrir la cremallera · Montaña · desinstalar · Instalar · disco · mkfs · RM · Tabla de contenido · Sincronizar · paradero · gpg · seis · Nano · Tabla de contenido · Du · existir · reparar · intercambio · clon · arrancar · Srm | |
proceso | alias · Pantalla · óptimo · OK · agradable · Progreso · pista · sistema · multiplexor · chsh · historia · existir · lote · libre · cual · dmesg · Franco suizo · módulo de usuario · posdata · chroot · xargs · Terminal · dedo meñique · lsof · Estadísticas de máquinas virtuales · pausa · pared · Sí · matar · dormir · Sudo · demandar · tiempo · dirección de grupo · módulo de usuario · grupo · lshw · cierre · reiniciar · deténgase · cerrar · clave · lscpu · Lista de tareas cronometradas · fecha · antecedentes · fg | |
redes | estadísticas de la red · plano · pista de ruta · propiedad intelectual · SS · Quien es · fail2ban · bmón · excavar · dedo · mapa · FTP · ondulado · wget · Quién · quién soy · w · iptables · ssh-keygen · ufw |