Bir klasördeki çok sayıda dosyanın ismini dizisel biçimde 01.txt, 02.txt olarak değiştirmeniz gerektiğinde aşağıdaki komutu kullanabilirsiniz:

find *.txt |
 
gawk 'BEGIN{ a=1 }{ printf "mv \"%s\" %04d.txt\n", $0,  a++ }' |
 
bash

-name parametresinden sonraki ‘.txt’ değeri yalnızca txt uzantılı dosyaların isimlerinin değiştirileceğini belirtir.
%04d.txt ifadesi ise 4 haneli olarak, yine txt uzantılı isimler verileceğini belirtir. 0001.txt, 0002.txt gibi.

Mesela uzantısına bakmaksızın tüm dosyaları 2 haneli (dosyalarımızın sayısı 100’den az ise) ve .dat uzantılı olarak isimlendirmek istersek:

find * |
 
gawk 'BEGIN{ a=1 }{ printf "mv \"%s\" %02d.dat\n", $0,  a++ }' |
 
bash

Eğer .txt uzantılı dosyalar haricindeki tüm dosyaları html olarak değiştirmek istersek:

find \! -name *.txt |
 
gawk 'BEGIN{ a=1 }{ printf "mv \"%s\" %02d.html\n", $0,  a++ }' |
 
bash

Uyarı: Kullanmadan önce mutlaka dosyalarınızın bir yedeğini alın!

Yazıyı bitirirken, bu tür linux komutlarına çok hakim olmadığımı belirteyim. Zaman zaman ihtiyaç duyduğumda bakabilmek için buraya yazıyorum. Umarım sizlerin de işini kolaylaştırır.

Herkese kolay gelsin

Kaynak: http://stackoverflow.com/questions/3211595/renaming-files-in-a-folder-to-sequential-numbers

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInPrint this pageEmail this to someone