Tengo algunos directorios y subdirectorios que contienen archivos sin extensión de archivo. Quiero agregar .jpg
a todos los archivos contenidos en estos directorios. He visto scripts de bash para cambiar la extensión del archivo, pero no solo para agregar uno. También debe ser recursivo, ¿alguien puede ayudar por favor?
bash
file
shell
command-line
file-extension
Robjmills
fuente
fuente
for
bucle que trastorna a bash para iterar sobre una lista de archivos, eso no es correcto. Elfor
bucle bash emite iterativamente cadamv
comando.find
Primero configura una lista de archivos antes de ejecutar la-exec
declaración? Supongo que sí, pero quiero aclarar este punto antes de codificar bucles infinitos.-not -name "*.*"
será suficiente.esto encontrará archivos sin extensión y agregará su .jpg
fuente
Esto es un poco tarde, pero pensé que agregaría que una mejor solución (aunque quizás menos legible) que las hasta ahora podría ser:
Utilizando la
find | xargs
patrón generalmente resulta en una ejecución más eficiente, ya que no tiene que bifurcar un nuevo proceso para cada archivo.Tenga en cuenta que esto requiere la versión de cambio de nombre que se encuentra en las distribuciones con sabor a Debian (también conocido como prename), en lugar del cambio de nombre tradicional. Sin embargo, es solo un pequeño script de Perl, por lo que sería bastante fácil usar el comando anterior en cualquier sistema.
fuente
Me gusta esto,
No espero que tenga nombres de archivo separados por espacios.
Si es así, los nombres deberán procesarse un poco.
Si desea ejecutar el comando desde algún otro directorio,
puede reemplazarlo
find .
porfind /target/directory
.fuente
-type
.Para cambiar el nombre de todos los archivos sin extensión en Windows Basic, puede hacerlo.
ren * *.jpg
Dado que el archivo no tiene extensión, solo use el *, o si desea cambiar png a jpg, useren *.png *.jpg
fuente
rename
no estoy seguro de que pueda cambiar el nombre de los archivos sin extensiones (estoy en Windows 7 en este momento)
fuente
rename
, uno un programa C incluido en util-linux-ng y otro un programa Perl (por el propio Wall) en las máquinas Debian de nuestra universidad. En realidad, ninguno de los dos hace recursividad.