Mam partię plików:
$ ls
Li1Fe1O2_11 Li1Fe2O3_8 Li1Fe3O4_2 Li1Fe3O4_5 Li2Fe1O3_16 Li2Fe2O4_12 Li3Fe1O4_19 Li3Fe1O4_22
Li1Fe1O2_14 Li1Fe2O3_9 Li1Fe3O4_3 Li1Fe3O4_6 Li2Fe1O3_17 Li2Fe2O4_13 Li3Fe1O4_20
Li1Fe2O3_7 Li1Fe3O4_1 Li1Fe3O4_4 Li2Fe1O3_15 Li2Fe2O4_10 Li3Fe1O4_18 Li3Fe1O4_21
I chciałbym zmienić ich nazwę na:
enum-00132
enum-00133
enum-00134
...
Próbowałem zmienić nazwę bez powodzenia.
shell-script
files
rename
mv
użytkownik40780
źródło
źródło
Odpowiedzi:
Użyj tego:
c=<your_starting_number>
; Założyłem132
jak w twoim pytaniu. Następniefor
pętla przechodzi przez wszystkie pliki w bieżącym katalogu. Dla każdego plikumv
wywoływane jest polecenie.printf
narzędzie drukuje nową nazwę pliku z wiodącymi zerami. I na koniec zmienna licznika$c
zwiększa +1.Edycja: jeśli chcesz używać tylko katalogów (
*/
katalogi tylko machtes, reszta pozostaje taka sama):źródło
c=$((c=c+1))
jest niepotrzebne. Wszystko czego potrzebujesz toc=$((c+1))
. W rzeczywistości możesz to zrobić((c++))
.$((c=c+1))
) ma najlepszą przenośność