Skocz do zawartości

Bash - Skrypt Do Archiwizacji


sashafierce

Rekomendowane odpowiedzi

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

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

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ć? :lol: 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

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ę
×
×
  • Dodaj nową pozycję...