2011-12-23 29 views
6

Tengo una carpeta y dentro de esa carpeta tengo 10-15 archivos con nombres arbitrarios. Los nombres de archivo pueden incluir espacios en ellos. Por ejemplo: wWw.page.com __ (576)_002. En un terminal, cuando presiono w y luego tab, el nombre del archivo aparece así: wWw.page.com\ \ __\ \(576\)_0.txt.Cambie el nombre de todos los archivos en la carpeta con números crecientes

Quiero un script que cambie el nombre de todos mis archivos como este 0.txt, 1.txt, 2.txt y así sucesivamente.

Mi problema es: wWw.page.com __ (576)_002.txt file not found.

index=0; 
for i in $(ls *.txt) 
do 
    cp "${i}" $index".txt" 
done 
+1

'perl -e'rename $ _ $ i ++ q (.txt), mientras que (<*.txt>) '' – jfs

Respuesta

14

En lugar de tratar de lsglob:.

index=0; 
for name in *.txt 
do 
    cp "${name}" "${index}.txt" 
    index=$((index+1)) 
done 
+0

excepción de que es '*. txt'. –

+0

Y usted no * necesita * el '$' interno ('índice = $ ((índice + 1))') –

+0

@ MichaelKrelin-hacker ¡Gracias! :-) – cnicutar

Cuestiones relacionadas