Shell Geek Renombra múltiples archivos a la vez
Digamos que tiene un directorio con cientos de archivos con los nombres de archivo incorrectos, y le gustaría reemplazar cada nombre de archivo que contenga prueba con pinchar. (Este es un ejemplo artificial). Podemos hacer esto fácilmente con el comando "for" en bash, combinado con un poco de bondad de bash. Hoy aprenderemos cómo reemplazar texto en una variable en un bucle for.
El comando "para" funciona así:
para var in; do $ var; done
Puedes reemplazar con cualquier patrón de coincidencia de archivos, como * o * .txt, y puede reemplazar con cualquier comando de linux. El comando se ejecutará en secuencia en cada uno de los archivos que coincidan con el patrón de coincidencia de archivos.
Aquí es donde el manejo de variables bash lo hace aún más interesante. En lugar de simplemente hacer algo como "mv $ var", podemos reemplazar el texto en el nombre de archivo usando esta sintaxis:
$ var / originaltext / replaceetext
Así que ahora, si ejecutamos este comando en nuestro directorio:
para f en *; haga mv $ f $ f / test / prod;
Para cada archivo que coincida con *, bash ejecutará un comando similar a este:
mv test.config prod.config
Descubrí que el conocimiento del shell es invaluable al administrar servidores o solo para administrar su colección de archivos, y me ha ahorrado horas de lo que de otra manera habría sido el trabajo manual.
Y sí, me doy cuenta de que hay una serie de herramientas que pueden cambiar el nombre de varios archivos.