Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak zmienić nazwe plików w linuxie?
Forum PHP.pl > Forum > Serwery WWW
Saki
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
...

A odpalam w tym katalogu gdzie są pliki php.
Bardzo proszę o pomoc.
thek
Bo ten skrypt nie ma prawa działać smile.gif Zobacz co on robi. Od 1 do 67326 przenosi/zmienia nazwę dla pliku o rozszerzeniu php na kolejny przebieg pętli. A powinno być tak, że pobierasz wszystkie pliki o rozszerzeniu php i każdemu po kolei zmieniasz nazwę na zwiększony o 1 licznik.
Przydatne do poznania i użycia: find, mv, for smile.gif

jak widzę nie chciało Ci się nawet do manuala zajrzeć, bo prosta wersja skryptu zmieniającego nazwy jest przy komendzie mv smile.gif Tylko że ona zmienia rozszerzenie pliku, a nie nazwę. Ty musisz skrypt nieco zmodyfikować i powinno hulać wink.gif
Nie wierzysz? Ostatni przykład zobacz: http://ss64.com/bash/mv.html

A za brak czytania manuali jako pokuta na kolanach pielgrzymka do serwerowni najbliższej biggrin.gif
Saki
Cytat(thek @ 25.03.2011, 11:15:18 ) *
Bo ten skrypt nie ma prawa działać smile.gif Zobacz co on robi. Od 1 do 67326 przenosi/zmienia nazwę dla pliku o rozszerzeniu php na kolejny przebieg pętli. A powinno być tak, że pobierasz wszystkie pliki o rozszerzeniu php i każdemu po kolei zmieniasz nazwę na zwiększony o 1 licznik.
Przydatne do poznania i użycia: find, mv, for smile.gif

jak widzę nie chciało Ci się nawet do manuala zajrzeć, bo prosta wersja skryptu zmieniającego nazwy jest przy komendzie mv smile.gif Tylko że ona zmienia rozszerzenie pliku, a nie nazwę. Ty musisz skrypt nieco zmodyfikować i powinno hulać wink.gif
Nie wierzysz? Ostatni przykład zobacz: http://ss64.com/bash/mv.html

A za brak czytania manuali jako pokuta na kolanach pielgrzymka do serwerowni najbliższej biggrin.gif


Nie umiem, poddaje się, mógłbyś mi pomóc?
A do najbliższej serwerowni mam 3 metry biggrin.gif Znajduje się w drugim pokoju wink.gif
Pokuta odprawiona smile.gif
skowron-line
Cytat(Saki @ 25.03.2011, 10:24:38 ) *
Próbowałem już napisać w bashu skrypt, ale nie wychodzi mi..

Spróbuj w PHPie napisać.
piotrooo89
Kod
#!/bin/bash

k=1

for i in `ls`
do
    if [ $0 != $i ];
    then
        mv $i "$k.php"
        k=$(($k+1))
    fi
done


w bash'u tak można. musisz miec skrypt w tym katalogu gdzie chcesz zmieniać.
Saki
Cytat(piotrooo89 @ 25.03.2011, 14:34:04 ) *
Kod
#!/bin/bash

k=1

for i in `ls`
do
    if [ $0 != $i ];
    then
        mv $i "$k.php"
        k=$(($k+1))
    fi
done


w bash'u tak można. musisz miec skrypt w tym katalogu gdzie chcesz zmieniać.


Działa smile.gif
Bardzo serdecznie Ci dziękuje smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.