|
#!/bin/sh # Dieses Script archiviert und komprimiert eine Quell-Datei/ein Quell-Verzeichnis in ein # Verzeichnis mit dem Namen [Quellnamen].archiv und legt dort ein Inhaltsverzeichnis # des Archivs an# ----------------begin function yesno---------- yesno(){ antw="" while [ "$antw"="" ]; do # gehe über alle Parameter und gib sie aus echo "$@? (y/n)" # lese in variable ans Benutzereingabe ein read ans case $ans in # case sensetiv und en/de akzptieren y|Y|j|J ) antwort="j";; n|N ) antwort="n";; * ) echo "antwoten Sie mit <j> oder <n>";; esac done } # ----------------end function yesno---------- # wenn kein Parameter myname=$0 parameter=$1 # Entfernen des letzten Slash hinter dem Parameter, wenn vorhanden if [ "${parameter%/}" != "" ] ; then parameter=${parameter%/} fi if [ $# -eq 0 ] ; then echo "Hilfe : `basename $myname` [-h|--help]" echo "Version: `basename $myname` [-v|--version]" else # wenn mehr als ein Parameter if [ $# -gt 1 ] ; then echo "Zu viele Parameter!" echo "Hilfe: `basename $myname` [-h|--help]" exit 1 else case $parameter in # Ausgabe "Hilfe" -h|--help) echo " Dieses Script archiviert und komprimiert eine Datei oder ein[e] Verzeichnis[struktur] in ein Verzeichnis mit dem Namen [Quelle].archiv und legt dort ein Inhaltsverzeichnis des Archivs an. Beispiel: mytar /home/user/Mail Ergebnis -> /home/user/Mail.archiv -> mit Mail.tgz -> und inhalt.txt" exit 0 ;; # Ausgabe "Version" -v|--version) echo "mytar v1.0 (10.06.2002, tchr)" exit 0 ;; esac # wenn Datei oder Verzeichnis nicht existiert if ! [ -e $parameter ] ; then echo "Datei oder Verzeichnis existiert nicht!" exit 1 # wenn Archiv schon existiert elif [ -e ${parameter}.archiv ] ; then echo "${parameter}.archiv ist schon vorhanden" echo yesno "soll ${parameter}.archiv ueberschrieben werden <j/n>" if [ $antwort="j" ]; then # Erstellen des Archivs tar -czf ${parameter}.archiv/`basename ${parameter}`.tgz # Erstellen der Inhaltsverzeichnis-Datei tar -t ${parameter}.archiv/`basename ${parameter}`.tgz > ${parameter}.archiv/inhalt.txt exit 0 else echo "Aktion abgebrochen" exit 0 fi else # Verzeichnis erstellen mkdir ${parameter}.archiv # Erstellen des Archivs tar -czf ${parameter}.archiv/`basename ${parameter}`.tgz # Erstellen der Inhaltsverzeichnis-Datei tar -t ${parameter}.archiv/`basename ${parameter}`.tgz > ${parameter}.archiv/inhalt.txt fi fi fi exit 0 # Ende --------------------------------------------------------------------------------- |