Pregunta

Tengo un par de directorios y subdirectorios que contienen archivos con ninguna extensión de archivo. Quiero añadir .jpg a todos los archivos contenidos en estos directorios. He visto scripts bash para cambiar la extensión del archivo, pero no sólo por la adición de uno. También tiene que ser recursivo, alguien puede ayudar por favor?

¿Fue útil?

Solución

comando alternativo sin un bucle explícito ( man find ):

find . -type f -exec mv '{}' '{}'.jpg \;

Descripción: Se encuentra todos los archivos de forma recursiva (-type f) a partir del directorio actual (.) y aplica el comando de desplazamiento ( mv ) a cada uno de ellos. Tenga en cuenta también las comillas alrededor de {}, por lo que los nombres de archivo con espacios (e incluso los saltos de línea ...) se manejan correctamente.

Otros consejos

esto encontrará archivos sin extensión y añadir su .jpg

find /path -type f -not -name "*.*" -exec mv "{}" "{}".jpg \;

Esto es un poco tarde, pero pensé que me gustaría añadir que una solución mejor (aunque tal vez menos legible) que las que hasta ahora podría ser:

find /path -type f -not -name "*.*" -print0 | xargs -0 rename 's/(.)$/$1.jpg/'

Utilizando el patrón find | xargs generalmente resulta en una ejecución más eficiente, ya que no tiene que desembolsar 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), más que el cambio de nombre tradicional. Es sólo un pequeño script en perl, sin embargo, por lo que sería bastante fácil de usar el comando anterior en cualquier sistema.

como este,

for f in $(find . -type f); do mv $f ${f}.jpg; done

No espero que tiene separadas por espacios nombres de archivo, España Si lo hace, tendrá que ser procesado un poco los nombres.

Si desea ejecutar el comando desde cualquier otro directorio, España puede reemplazar el find . con find /target/directory.

Para cambiar el nombre de todos los archivos sin extensión en el básico de Windows que puede hacer ren * *.jpg Desde el archivo sin extensión, sólo tiene que utilizar el *, o si desea cambiar png a jpg uso ren *.png *.jpg

rename

No está seguro de que puede cambiar el nombre de archivos sin extensiones (estoy en windows 7 ahora mismo)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top