ďťż
 
 
   [+] bash - zmiana nazw wszystkich plików w folderze
 
 

Tematy

 
    
 

 

 

 

[+] bash - zmiana nazw wszystkich plików w folderze





Smerf - 29-01-2008 21:33
Cześć. Chciałem się kiedyś nauczyć programować w bashu ale jakoś nie wyszło. Teraz mam problem.
Mam n plików w folderze posortowanych alfabetycznie. Teraz chciałbym im zmienić nazwy, tak że pierwszy plik będzie miał nazwę 1, drugi nazwę 2, ... ,ostatni nazwę n.

Mógłby mi ktoś napisać ten skrypt?

Ja już zacząłem to ręcznie robić.



ilr - 29-01-2008 22:19
Zainteresuj się pakietem mrename.



ultr - 30-01-2008 12:46
Sprawa jest stosunkowo prosta.

Jedynym problemem jest to, że trzeba uważać na nazwy plików, aby się nie powtórzyły. Dla takich plików zmiana plików po kolei nie zadziała: 1, 11, 2 - Plik 11 będzie miał zmienioną nazwę na 2, ale taki plik już istnieje.
Dlatego najlepiej przenieść je do tymczasowego katalogu, a na koniec przenieść z powrotem.
#!/bin/bash
mkdir -p ./$1/.temp
n=1
for plik in `find ./$1/ -maxdepth 1 -type f | sort`; do
  mv "$plik" "./$1/.temp/$n"
  n=`expr $n + 1`
done
for plik in `find ./$1/.temp/ -maxdepth 1 -type f`; do
  mv "$plik" "./$1/"
done
rmdir ./$1/.temp Powinno działać. Skrypt należy wywołać ze względną ścieżką do katalogu z plikami do zmiany nazwy.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • minister.pev.pl

  •  

     


     

     
    Copyright 2003. MĂłj serwis