2011-08-31 21 views

Respuesta

18

en la cáscara, se puede hacer esto:

for file in *; do 
    if [ -f ${file} ]; then 
     mv ${file} ${file}.xml 
    fi 
done 

Editar

Para hacer esto de forma recursiva en todos los subdirectorios, se debe utilizar find:

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

Por otro De la mano, si va a hacer algo más complejo que esto, probablemente no debería usar scripts de shell.

Mejor aún

Utilice el comentario proporcionado por Jonathan Leffler a continuación:

find . -type f -exec mv {} {}.xml ';' 
+0

cómo lo hago recursivamente en todos los subdirectorios también – aWebDeveloper

+5

Use 'find' para encontrar los archivos; 'encontrar. -type f -exec mv {} {} .xml ';' '. –

+1

Actualizó la respuesta. –

2

En Python:

Uso os.listdir para conocer los nombres de todos los archivos en un directorio. Si necesita recursivamente busque también todos los archivos en los subdirectorios, use os.walk. Su API es más compleja que os.listdir, pero proporciona formas potentes para recorrer directorios de forma recursiva.

Luego use os.rename para cambiar el nombre de los archivos.

+0

un ejemplo de código o ejemplo o enlace. No sé Python – aWebDeveloper

+0

@Web Desarrollador: ¿acabas de darme -1 por darte una respuesta? ¿Seriamente? –

+0

no hice clic en él por error inmediatamente lo deshice – aWebDeveloper

3

No sé si esto es normal, pero mi Perl paquete (Debian/Ubuntu) incluye una /usr/bin/prename (y un enlace simbólico solo rename) que no tiene otro propósito:

rename 's/$/.xml/' * 
+0

¿Cómo lo hago recursivamente en todos los subdirectorios pero no en archivos .xml? es decir, archivos que no se han cambiado el nombre – aWebDeveloper

+0

con '$ (find -type f)' en vez de '*'. Y adaptando la expresión regular con una aserción 's/(? mario

+2

Puede usar el cambio de nombre con la bandera -n para probar cómo sería el cambio de nombre sin cambiar el nombre de los archivos. –

3
find . -type f \! -name '*.xml' -print0 | xargs -0 rename 's/$/.xml/' 
Cuestiones relacionadas