sashafierce Napisano Czerwiec 9, 2011 Zgłoszenie Share Napisano Czerwiec 9, 2011 Witam, Mam do napisania skrypt do archiwizacji plików komendą "tar". Główne wymagania: dane katalogi mają być przeszukiwane rekursywnie w celu znalezienia plików "do-archiwum*". Każdy taki plik w pierwszej linijce ma nazwę archiwum, a w kolejnych linijkach nazwy plików lub wyrażenia regularne opisujące pliki, które powinny być dodane do archiwum. Jeśli taki katalog istnieje, powinien być dodany. Nazwy plików, które nie zaczynają się od "/" powinny być traktowane jako ścieżki zależne od katalogów zawierających pliki "do-archiwum*". Próbuję napisać taki skrypt, z tym że nie wiem jak sprawdzić poprawność jego działania. Zapisuję jako coś.sh, chmod +x coś.sh. Proszę o sugestie. #!/bin/bash katalog=$PWD for param in "$@" do case "$param" in "-h") echo "Exercise 4.5 Archive creator." break ;; "-v") echo "version number - 1.0 " break ;; *) find "$param" -type f -name 'do-archiwum*' | sed -e "s@^\./@$katalog/@" | while read DO_SPAKOWANIA do #echo "<<"$DO_SPAKOWANIA">>" cat "$DO_SPAKOWANIA" | sed -e "s@^\./@${DO_SPAKOWANIA%do-archiwum*}@" | xargs tar -c -f done esac done Mam do dyspozycji wyłącznie fedorę zainstalowaną i skonfigurowaną przez siebie, w trybie tekstowym, więc tylko terminal wchodzi w grę. Bardzo proszę o pomoc. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
alkuzad Napisano Czerwiec 9, 2011 Zgłoszenie Share Napisano Czerwiec 9, 2011 radze nie uzywac polskich znakow - tak profilaktycznie i wszedzie. A jak już dałeś to po prostu z katalogu w ktorym jest skrypt wklep: ./coś.sh Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
sashafierce Napisano Czerwiec 9, 2011 Autor Zgłoszenie Share Napisano Czerwiec 9, 2011 Podałam przykładową nazwę, w mojej nie ma polskich znaków po wpisaniu komendy nic się nie dzieję, domyślam się, że powinnam stworzyć jakieś katalogi i pliki, które powinny spełniać warunek, czyli nazywać się "do-archiwum*", jeśli dobrze rozumiem. Nie wiem natomiast o co chodzi z: Każdy taki plik w pierwszej linijce ma nazwę archiwum, a w kolejnych linijkach nazwy plików lub wyrażenia regularne opisujące pliki, które powinny być dodane do archiwum. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Czerwiec 9, 2011 Zgłoszenie Share Napisano Czerwiec 9, 2011 W warunku odwołujesz się do zmiennej DO_SPAKOWNIA, która nie jest nigdzie wcześniej inicjowana, więc warunek jest false i pętla jest pomijana. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
sashafierce Napisano Czerwiec 9, 2011 Autor Zgłoszenie Share Napisano Czerwiec 9, 2011 DO_SPAKOWANIA tworzy się dynamicznie. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
thof Napisano Czerwiec 10, 2011 Zgłoszenie Share Napisano Czerwiec 10, 2011 Próbuję napisać taki skrypt, z tym że nie wiem jak sprawdzić poprawność jego działania. po wpisaniu komendy nic się nie dzieję, domyślam się, że powinnam stworzyć jakieś katalogi i pliki, które powinny spełniać warunek, czyli nazywać się "do-archiwum*", jeśli dobrze rozumiem. Co Ty piszesz coś, a nie wiesz jak działa lub nawet jak sprawdzić? To jakiś nowy styl programowania. W sumie to jest zadanie domowe, a do tego wrzucasz gotowca którego nie rozumiesz to już w ogóle nie powinniśmy pomagać. Napisz coś sama to wtedy można coś próbować. Nie musi być tak wymyślnie jak w tym przykładzie, gdzie wszystko w wrzucone jest w potok. param to tablica katalogów, w których szukasz pliku do-archiwum*. Przekazujesz ją np. /skrypt.sh katalog1 katalog2 Przykładowa zawartość pliku do-archiwum1: archiwum.tar.gz # nazwa archiwum plik1 # nazwa pliku ktory trafi do archiwum zaw* # pliki ktore trafia do archiwum to np. zawartosc, zaw1, zawdupa itp. Coś mi się wydaje, że ten skrypt nie zadziała dokładnie tak samo jak w opisie. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się