Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
hej
mam prośbę o pomoc w napisaniu prostego skryptu shellowego, mianowicie chciałbym aby skrypt z danego miejsca zczytywał nazwy katalogów i pakował je wszystkie ale w odrębnych pliach np:
mam katalog:
/home/test
i tam są katalogi:
kat1
kat2
kat3
....
i tworzył kolejno: kat1.tgz kat2.tgz kat3.tgz i wiadomo jakby dochodził nowy katalog a ja znowu bym uruchomił skrypt to żeby już wziął go pod uwagę podczas kompresji.
z góry dziekuje pozdrawiam
Offline
#!/bin/bash for katalog in * do tar czvf $katalog.tgz $katalog done
Najprosciej jak mozna. Ma to jednak taka wade , ze jesli w katalogu w ktorym wykonuje sie ten skrypt sa jakies pliki oprocz katalogow to te pliki popakuje wszystkie, kazdy w odzielnego .tgz wiec najlepiej byloby dodac po spakowaniu aby przeniosl spakowany plik gdzies do katalogu nadrzednego i tam trzymac te spakowane katalogi.
EDIT:
Gdybym sobie przypomnial jaka funkcja zwracala czy cos jest katalogiem czy plikiem to byloby juz dokladnie tak jak chcesz . Wtedy pakowalby tylko katalogi. Mam nadzieje ,ze cos pomoglem.
Offline
Gdybym sobie przypomnial jaka funkcja zwracala czy cos jest katalogiem czy plikiem to byloby juz dokladnie tak jak chcesz . Wtedy pakowalby tylko katalogi.
file lub find <ścieżka> -type d
Offline
andreq dzieki.
Teraz masz dobry skrypcik:
#!/bin/bash for katalog in `find . -type d` do if [ $katalog == . ] then echo "Pomijanie katalogu bierzącego.." elif [ -e ./$katalog.tgz ] then echo "Pomijanie $katalog poniewaz archiwum $katalog.tgz istnieje..." else tar czvf $katalog.tgz $katalog fi done
Gdybys jednak zaktualizowal cos w ktoryms juz spakowanym katalogu to musisz wywalic sprawdzanie aby moc spakowac to ponownie:
elif [ -e ./$katalog.tgz ] then echo "Pomijanie $katalog poniewaz archiwum $katalog.tgz istnieje..."
Offline
dziekuje :)
Offline