A menudo usamos el comando “ mv. para cambiar el nombre de un solo archivo en Linux. Sin embargo, cambiar el nombre de varios o grupos de archivos rápidamente hace que sea una tarea muy difícil en una terminal.
Linux. viene con una herramienta incorporada muy poderosa llamada rename. El comando cambiar el nombre. se usa para cambiar el nombre de varios archivos o grupos de archivos, cambiar el nombre de los archivos a minúsculas, cambiar el nombre de los archivos a mayúsculas y sobrescribir archivos usando expresiones perl.
El” cambio de nombre. ”es parte del script Perl. y reside en“ /usr/bin/ ”en muchas distribuciones de Linux. Puede ejecutar el comando “ which. para averiguar la ubicación del comando de cambio de nombre.
$ which rename/usr/bin/rename La sintaxis básica del comando de cambio de nombre renombrar ‘s/old-name/archivos new-name/’
El comando de cambio de nombre viene con algunos argumentos opcionales junto con la expresión de perl. obligatoria que guía al comando de cambio de nombre para que haga el trabajo real.
rename [-v] [-n ] [-f] perlexpr [archivos]
- -v. imprime los nombres de los archivos cuyo nombre se ha cambiado correctamente.
- -n. mostrar qué archivos habrían cambiado de nombre.
- -f. Forzar la sobrescritura de archivos existentes.
- perlexpr. Expresión de Perl.
Para comprender mejor esta utilidad, hemos discutido algunos ejemplos prácticos de este comando en el artículo.
Table of Contents
1. Un ejemplo básico de comando de cambio de nombre
Suponga que tiene un montón de archivos con la extensión “ .html. y desea cambiar el nombre de todos los archivos “ .html. a “ .php. de una vez. Por ejemplo, primero haga “ ls-l. para verificar la lista de archivos con la extensión “ .html. .
# [email protected]: ~ $ ls-l total 22532-rw-rw-r–1 ravisaive ravisaive 6888896 10 de octubre 12:10 cricket.html-rw-rw-r–1 ravisaive ravisaive 588895 10 de octubre 12:10 entertainment.html-rw-rw-r–1 ravisaive ravisaive 6188895 10 de octubre 12:10 health.html-rw-rw-r–1 ravisaive ravisaive 6538895 10 de octubre 12:10 lifestyle.html-rw-rw-r–1 ravisaive ravisaive 938895 10 de octubre 12 : 10 news.html-rw-rw-r–1 ravisaive ravisaive 938937 10 de octubre 12:11 photos.html-rw-rw-r–1 ravisaive ravisaive 978137 10 de octubre 12:11 sports.html
Ahora, desea cambiar la extensión de todos estos archivos de “ .html. a “ .php. . Puede utilizar el siguiente comando “ renombrar. con expresión de perl. como se muestra a continuación.
[email protected]: ~ $ rename ‘s/. Html $/ .php/’* .html
Nota. En el comando anterior hemos usado dos argumentos.
- El primer argumento es una expresión en perl. que sustituyen .html. con .php.
- El segundo argumento le dice al comando de cambio de nombre que sustituya todos los archivos con *. php.
Verifiquemos si se cambia el nombre de todos los archivos a la extensión “ .php. , haciendo ls-l. en el mensaje.
[email protected]: ~ $ ls-l total 22532-rw-rw-r–1 ravisaive ravisaive 6888896 10 de octubre 12:10 cricket.php-rw-rw-r–1 ravisaive ravisaive 588895 10 de octubre 12:10 entertainment.php-rw-rw-r–1 ravisaive ravisaive 6188895 10 de octubre 12:10 health.php-rw-rw-r–1 ravisaive ravisaive 6538895 10 de octubre 12:10 lifestyle.php-rw-rw-r–1 ravisaive ravisaive 938895 10 de octubre 12:10 ne ws.php-rw-rw-r–1 ravisaive ravisaive 938937 10 de octubre 12:11 photos.php-rw-rw-r–1 ravisaive ravisaive 978137 10 de octubre 12:11 sports.php
Ahora puedes ver arriba, todos los archivos html. se renombran a php.
2. Verifique los cambios antes de ejecutar el comando de cambio de nombre
Mientras realiza tareas importantes o críticas de cambio de nombre, siempre puede verificar los cambios ejecutando el comando de cambio de nombre con el argumento “-n. . El parámetro “-n. le dirá exactamente qué cambios se llevarían a cabo, pero los cambios no son reales. Aquí está el ejemplo del comando a continuación.
[email protected]: ~ $ rename-n ‘s/. php $/. html/’ * .php cricket.php renombrado como cricket.html entertainment.php renombrado como entertainment.html health.php renombrado como health.html lifestyle.php renombrado como lifestyle.html news.php renombrado como news.html photos.php renombrado como photos.html sports.php renombrado como sports.html
Nota. Lo anterior la salida del comando solo muestra los cambios, pero en realidad los cambios no se realizan, a menos que ejecute el comando sin el modificador “-n. .
3. Imprimir salida de cambio de nombre
Vimos que el comando de cambio de nombre no mostraba ninguna información de los cambios que realiza. Entonces, si desea obtener los detalles del comando de cambio de nombre (como hicimos con la opción “-n. ), aquí usamos la opción “-v. para imprimir el detalles de todos los cambios realizados con el comando de cambio de nombre con éxito.
[correo electrónico protegido]: ~ $ rename-v ‘s/. php $/. html/’ * .php cricket.php renombrado como cricket.html entretenimiento .php renombrado como entretenimiento.html health.php renombrado como health.html lifestyle.php renombrado como lifestyle.html news.php renombrado como news.html photos.php renombrado como photos.html sports.php renombrado como sports.html
4. Convertir todas las minúsculas a mayúsculas y Vise-Versa
Para cambiar el nombre de todos los archivos con minúsculas. por lotes a mayúsculas. Por ejemplo, quiero encubrir todos estos archivos siguientes de minúsculas. a mayúsculas.
De minúsculas a mayúsculas [email protected]: ~ $ ls-l total 22532-rw-rw-r-1 ravisaive ravisaive 6888896 10 de octubre 12:10 cricket.html-rw-rw-r–1 ravisaive ravisaive 588895 10 de octubre 12:10 entertainment.html-rw-rw-r–1 ravisaive ravisaive 6188895 10 de octubre 12: 10 health.html-rw-rw-r–1 ravisaive ravisaive 6538895 10 de octubre 12:10 lifestyle.html-rw-rw-r–1 ravisaive ravisaive 938895 10 de octubre 12:10 news.html-rw-rw-r-1 ravisaive ravisaive 938937 10 de octubre 12:11 photos.html-rw-rw-r–1 ravisaive ravisaive 978137 10 de octubre 12:11 sports.html
Simplemente, use el siguiente comando con la expresión perl.
[email protected]: ~ $ rename ‘y/az/AZ/’ * .html
Una vez que haya ejecutado el comando anterior, puede verificar los cambios haciendo “ ls-l. .
[email protected]: ~ $ ls-l total 22532-rw-rw-r–1 ravisaive ravisaive 6888896 10 de octubre 12:10 CRICKET.HTML-rw-rw-r–1 ravisaive ravisaive 588895 10 de octubre 12:10 ENTRETENIMIENTO.HTML-rw-rw-r–1 ravisaive ravisaive 6188895 10 de octubre 12:10 HEALTH.HTML-rw-rw-r–1 ravisaive ravisaive 6538895 10 de octubre 12:10 LIFESTYLE.HTML-rw-rw-r–1 ravisaive ravisaive 938895 10 de octubre 12:10 NEWS.HTML-rw-rw-r–1 ravisaive ravisaive 938937 10 de octubre 12:11 PHOTOS.HTML-rw-rw-r–1 ravisaive ravisaive 978137 10 de octubre 12:11 SPORTS.HTML
Puede ver que el comando anterior realmente cambió el nombre de todos los nombres de archivo en minúsculas (con la extensión .HTML. a mayúsculas.
Mayúsculas a minúsculas
De forma similar, también puede convertir todos los caracteres en mayúsculas. a minúsculas. con el siguiente comando.
[email protected]: ~ $ rename ‘y/AZ/az/’ * .HTML [email protected]: ~ $ ls-l total 22532-rw-rw-r–1 ravisaive ravisaive 6888896 10 de octubre 12:10 cri cket.html-rw-rw-r–1 ravisaive ravisaive 588895 10 de octubre 12:10 entertainment.html-rw-rw-r–1 ravisaive ravisaive 6188895 10 de octubre 12:10 health.html-rw-rw-r–1 ravisaive ravisaive 6538895 10 de octubre 12:10 lifestyle.html-rw-rw-r–1 ravisaive ravisaive 938895 10 de octubre 12:10 news.html-rw-rw-r–1 ravisaive ravisaive 938937 10 de octubre 12:11 photos.html-rw-rw-r–1 ravisaive ravisaive 978137 10 de octubre 12:11 sports.html
5. Poner en mayúscula la primera letra del nombre de archivo
Para poner en mayúscula solo la primera letra de cada nombre de archivo, utilice el siguiente comando.
# renombrar ‘s/ b ( w)/ U $ 1/g’ * .ext Poner en mayúscula el nombre de archivo de la primera letra
6. Sobrescribir archivos existentes
Si desea sobrescribir archivos existentes a la fuerza, use la opción “-f. como se muestra a continuación.
[email protected]: ~ $ rename-f ‘s/a/b/’ * .html
Si desea saber más sobre el comando de cambio de nombre, escriba “ man rename. en la terminal.