Jak zmienić nazwy plików w katalogu na 1, 2, 3 itd?
Bo teraz każdy plik ma nazwę: er34ds56a5wrwe54.php i chce zmienić plikom nazwę żeby mieli 1.php, 2.php, 3.php itd.
Ale nie chce tego ręcznie zmieniać bo jest ich 67326 tysięcy:
s15433203:~/pliki# ls | wc -l
67326
Próbowałem już napisać w bashu skrypt, ale nie wychodzi mi… Sami zobaczcie:
#!/bin/sh
for (( i=1; $i <= 67326; i++ )) ; do
mv *.php $i.php
done
Ale gdy odpalam skrypt to:
mv: target `1.php' is not a directory
mv: target `2.php is not a directory
mv: target `3.php' is not a directory
mv: target `4.php' is not a directory
mv: target `5.php' is not a directory
mv: target `6.php' is not a directory
mv: target `7.php' is not a directory
...
Ponieważ odpalasz mv na *.php , przenosisz wszystkie pliki php w katalogu. Drugi parametr jest wtedy uznawany za katalog, stąd pretensje systemu.
Edit : Właściwie jest kilka sposobów na zrobienie tego, ja na początku wylistowałbym wszystkie nazwy plików do pliku tekstowego, a potem zamieniał plik o nazwie i-tej linijki na i-ty plik php.
Głupio się przyznać, ale mimo tego, że linuxa używam od kilku lat, składni basha nie ogarniam ;p
ls > listaplikow
utworzy plik. Potem
for x in $(cat listaplikow)
przejdzie po wszystkich elementach pliku (tego nie jestem pewien ;p ). Musisz tylko stworzyć sobie nową zmienną i, inkrementować ją wewnątrz pętli (dodawać jeden), i robic coś w stylu mv x $i.php
#!/bin/sh
i=0
for x in $(cat listaplikow) ; do
mv x $i.php
i=i+1
done
mv: cannot stat `x': No such file or directory
mv: cannot stat `x': No such file or directory
mv: cannot stat `x': No such file or directory
mv: cannot stat `x': No such file or directory
mv: cannot stat `x': No such file or directory
mv: cannot stat `x': No such file or directory
mv: cannot stat `x': No such file or directory
mv: cannot stat `x': No such file or directory
mv: cannot stat `x': No such file or directory
mv: cannot stat `x': No such file or directory
mv: cannot stat `x': No such file or directory
mv: cannot stat `x': No such file or directory
mv: cannot stat `x': No such file or directory
mv: cannot stat `x': No such file or directory
...
A musisz to koniecznie w bashu robić? Użyj na przykład KRename, a jeśli masz dostęp do Windows to np. Total Commander -> Narzędzie wielokrotnej zamiany.