Mit tar in das ursprüngliche Verzeichnis entpacken

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Lumpi, 07.07.2006.

  1. Lumpi

    Lumpi Haudegen

    Dabei seit:
    14.06.2006
    Beiträge:
    663
    Zustimmungen:
    0
    Ort:
    Dessau
    Hallöchen

    Ich bastel gerade an nem script für Datensicherungen.

    Alles funzt soweit ganz gut, allerdings entpackt tar nur nach /datensicherung, wo meine saves liegen.
    Das liegt daran, dass tar mein führendes slash ´/´ vor den Verzeichnissen entfernt.
    Die Daten sollen jedoch dort wieder hin, wo ich sie zuvor her habe.
    Wie kann ich nun tar beibringen, dieses slash wieder zu setzen?

    Falls mir bei dieser Hitze noch zu helfen ist... ?( würde ich mich über Antworten freuen.

    Zum besseren Verständnis poste ich mal die funktion
    Code:
    #!/bin/bash
    
    function datenlesen()
    {
    clear;
    echo;
    save=
    PS3="Welche Datensicherung zurücklesen?   "
    cd /datensicherung
    select save in *
    clear
    do echo $save
    if [ -z "$save" ]
    then 
    $funktion datenlesen
    fi
    break;
    done;
    frage=
    echo "Alle bereits vorhandenen Daten werden ohne weitere Abfragen überschrieben!"
    echo -e "Möchten Sie dennoch fortfahren? j / n : \c"
    read frage
        
    if [ "$frage" = "n" ]
    then
    clear;
    echo;
    echo "Die Sicherung ´$save´ wurde nicht zurückgelesen!" 
    $function ausgang
        elif [ "$frage" = "j" ]
        then
        tar -xzvf /datensicherung/$save  
        clear;
        echo
        echo "Das Zuruecklesen von $save war erfolgreich."
    else
    echo "Ende wegen Falscheingabe"
    exit;
    fi
    }
    
    Der User wird darüber informiert, dass seine vorhandenen Daten überschrieben werden.
    Jedoch würde ich auch gern die JA / NEIN Abfrage etwas perfektionieren.
    Momentan bricht das script bei einer Falscheingabe mit einer Fehlermeldung ab.

    Ich glaube, das ich das mit while -do realisieren kann.
    Ich habe eine diesbezügliche Möglichkeit schon mal im Board gefunden.
    Aber da mir scheinbar schon ein paar Hirnwindungen :D eingetrocknet sind kann ich mich nicht mehr erinnern wo. *grübel*

    Ich werde mich erst einmal in das nächse Wasserloch versenken und wünsche Euch allen ein paar kühle Stunden.

    Gruß Lumpi
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Wolfgang, 07.07.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Wenn du den führenden Slash drin lassen willst, also absolute Pfade brauchst, dann kennt GNU tar die Option -P.
    man tar:
    es gibt auch die Option -C

    Zu deiner Abfrage solltest du bitte mal genauer sagen, was du willst und nicht hinbekommst.
    Dann könnte dir sicher besser geholfen werden. ;)
    Gruß Wolfgang
     
  4. #3 Lumpi, 07.07.2006
    Zuletzt bearbeitet: 08.07.2006
    Lumpi

    Lumpi Haudegen

    Dabei seit:
    14.06.2006
    Beiträge:
    663
    Zustimmungen:
    0
    Ort:
    Dessau
    Hallo Wolfgang,

    Wärend mir im See mein Hirn wieder auf Normalgröße quoll 8o , kam mir so in den Sinn:
    Mann man tar. :respekt:

    Ich danke dir für deinen Tipp, welcher sofort umgesetzt und erfolgreich getestet wurde.

    Nun ich versuche es mal zu skizzieren:

    Der User soll entscheiden, ob das zurücklesen durchgeführt werden soll oder nicht.

    Momentan fange ich nur ´j´ oder ´n´ mit meinem code ab
    bei einer anderen Eingabe zum Beispiel ´x´ läuft folgendes ab

    Code:
    If ["§frage" = "j" ]
    dann Anweisung
    elif ["§frage" = "n" ]
    dann Anweisung
    else
    echo "Ende wegen Falscheingabe"
    exit;
    fi
    
    Mein eigenes "echo" bezeichnete ich unüberlegter weise im vorherigen Posting als Fehlermeldung ;)

    Ich würde jedoch ganz gerne NUR die beiden gültigen Eingaben /also nur j / n ) zulassen und alles andere ignorieren.

    Also dieses Prinzip
    Code:
    frage=
    echo "Alle bereits vorhandenen Daten werden ohne weitere Abfragen überschrieben!"
    echo -e "Möchten Sie dennoch fortfahren? j / n : \c"
    read frage
    [B]
    jetzt warte solange, bis  Eingabe "j" oder "n"  ist  
    
    ERST dann [/B]
    
    If ["§frage" = "j" ]
    dann Anweisung
    elif ["§frage" = "n" ]
    dann Anweisung
    fi
    Nur ich habe momentan keinen Plan, wie ich das umsetzen muss /kann.
    Ich hoffe, dass dir mit meiner konfusen Schreibweise mein Ziel klar geworden ist. :brav:

    Ich habe wieder nen Hitzestau mit gleichzeitiger Denkblockade. :rofl:

    Gruß Lumpi

    EDIT:
    Ich habe die Lösung gefunden beziehungsweise liegt sie schon im script, da ich mein menu so aufgebaut habe.

    Code:
    Auswahl der Datensicherung
    
    echo "Alle bereits vorhandenen Daten werden ohne weitere Abfragen überschrieben!"
    PS3="Möchten Sie dennoch fortfahren?   "
    
    echo;
        select auswahl in "ja" "nein" 
        do echo
    
        case $auswahl in
    
    		"ja" ) tar -xPzvf /datensicherung/$save; break;;
    				
    		"nein" ) break;;
    
        esac
        done
    
    Danke trotzdem für die Hilfe

    Gruß Lumpi
     
Thema:

Mit tar in das ursprüngliche Verzeichnis entpacken

Die Seite wird geladen...

Mit tar in das ursprüngliche Verzeichnis entpacken - Ähnliche Themen

  1. ursprünglichen IFS wiederherstellen

    ursprünglichen IFS wiederherstellen: Hi, Ich kenn mich nicht besonders aus mit Shell-Programmierung und hab deswegen auf der bash den Internal Field Separator geändert, ohen ihn...
  2. Alle Dateien eines Verzeichnisses mit einer anderen Datei vergleichen

    Alle Dateien eines Verzeichnisses mit einer anderen Datei vergleichen: Hallo, ich habe ein Verzeichnis, darin enthalten sind mehrere Dateien. Nun möchte ich alle Dateien (Parameter $1) gegen eine konstante Datei...
  3. Home Verzeichnis ändern

    Home Verzeichnis ändern: Hallo Wollte nicht, dass mein Sohn (16) in die veschränkte WIN Welt hinein wächst und habe für Ihn Linux Mint auf seinem LAPTOP installiert. Er...
  4. Cryptomator: Transparente Verschlüsselung für Cloud-Verzeichnisse

    Cryptomator: Transparente Verschlüsselung für Cloud-Verzeichnisse: Das freie Programm Cryptomator, dessen Version 1.0 kurz bevorsteht, soll für eine einfache, sichere und transparente Verschlüsselung von...
  5. PHP Skripte werden nur im Verzeichnis des jeweiligen Benutzers ausgeführt

    PHP Skripte werden nur im Verzeichnis des jeweiligen Benutzers ausgeführt: Hallo zusammen, ich bin mit meinen Domains auf einen neuen Webserver umgezogen. Ein Teil meiner Domains lief auf Drupal als...