Dateien packen mit tar

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Der_Wolf, 26.08.2008.

  1. #1 Der_Wolf, 26.08.2008
    Der_Wolf

    Der_Wolf Jungspund

    Dabei seit:
    23.07.2008
    Beiträge:
    13
    Zustimmungen:
    0
    Hallo,

    ich habe wieder ein Problem mit dem ich mich sehr schwer tue.

    Also ich habe in einer Ordnerstruktur viele Dateien die ich packen möchte um platz zu sparen. Aus einem übergeordneten Ordner starte ich ein "find" um die Dateien mit vollständiegem Pfad zu finden. Dann möchte ich die gefundenen Dateien mit tar und gzip packen.

    finden:
    Code:
    find -name *.asc -exec packen {} \;
    
    packen:
    Code:
    directory=$1
    directory=${directory%/*}
    tar cz -C $directory $1 > $1.tar.gz   
    
    Nun die Dateien werden gefunden und gepackt allerdings enthält das Archiv danach die ganze Ordnerstruktur und nicht nur die gewünschte Datei.
    Obwohl ich mit tar -C schon ins Verzeichniss gewechselt bin packt er jedesmal die ganze Ordnerstruktur von root an mit ein (so wie sie von find gefunden wird).

    Hat jemand eine Idee wie ich das verhindern kann, sodass in jedem Unterordner in dem sich eine zu packende Datei befindet ein Archiv angelegt wird das NUR die Datei enthält und nicht die Ordnerstruktur.

    mfg
    Denny
     
  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 Der_Wolf, 27.08.2008
    Der_Wolf

    Der_Wolf Jungspund

    Dabei seit:
    23.07.2008
    Beiträge:
    13
    Zustimmungen:
    0
    Hallo,

    ist die Frage jetzt zu schwer oder zu einfach oder einfach nur dumm??

    mfg
    Denny
     
  4. #3 bytepool, 27.08.2008
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Hi,

    also da wuerden mir zwei Sachen zu einfallen. Erstens, find uebergibt ja auch den kompletten Pfadnamen an tar, hast du mal versucht den Pfad mit $(basename $myvar) zu strippen?
    Ansonsten koenntest du mal mit der --transform Option von GNU tar rumspielen.

    Hab leider keine Zeit meine Vorschlaege selber zu testen. ;)

    mfg,
    bytepool
     
  5. #4 Wolfgang, 27.08.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    Ups habe den Beitrag ganz übersehen.

    Wie bytepool schon sagte, liegt es am Full Path der Dateinamen.
    Eine simple Lösung ergibt sich in etwa so.
    Ist nur ein Vorschlag und ungetestet.
    Code:
    find /home/user/docs/ -type f|
    while read f; 
      do
        tar -rvf /tmp/archiv.tar -C "$(dirname $f)" $(basename $f);
      done
    gzip /tmp/archiv.tar
    
    Gruß Wolfgang
     
  6. #5 Der_Wolf, 27.08.2008
    Zuletzt bearbeitet: 27.08.2008
    Der_Wolf

    Der_Wolf Jungspund

    Dabei seit:
    23.07.2008
    Beiträge:
    13
    Zustimmungen:
    0
    Hallo,

    erstmal vielen Dank an bytepool und Wolfgang :).

    Ich hab es geschafft nun sieht es so aus:

    Code:
    tar -rvf $1.tar -C "$(dirname $1)" $(basename $1);
    gzip $1.tar
    
    Die Sache mit basename und dirname erleichtert die Sache natürlich, ich hatte es vorher mit regular Expressions versucht aber das war viel zu kompliziert.

    mfg
    Denny
     
Thema:

Dateien packen mit tar

Die Seite wird geladen...

Dateien packen mit tar - Ähnliche Themen

  1. [UNRAR] Automatisches löschen der .rar-Dateien nach dem Entpacken

    [UNRAR] Automatisches löschen der .rar-Dateien nach dem Entpacken: Hallo, ich konnte mich einige Zeit ohne Hilfe in der weiten Welt von Linux mehr oder weniger zurecht finden aber jetzt habe ich mal wieder ein...
  2. Paralleles packen von Dateien

    Paralleles packen von Dateien: Sehr geehrte Dame und Herren, ich bin neu hier im forum deshalb begrüsse ich alle recht herzlich :). Ich habe ein Problem, ich habe auf...
  3. Dateien in Unterordnern entpacken?

    Dateien in Unterordnern entpacken?: Hiho Scripter :) ich stehe gerade vor folgender Situation: Ich habe ca 50 Ordner, in diesen Ordnern gibts 2 Unterordner und darin ist...
  4. Wie kann man mit tar mehrere Dateien auspacken?

    Wie kann man mit tar mehrere Dateien auspacken?: Also ich finde das blöd! X( Immer wenn ich Xorg7.1 neu kompilieren möchte muss ich immer mit 'tar -xf <filename>' arbeiten und komme nur im...
  5. .bin - Dateien öffnen/ entpacken, bzw. virtuelles Laufwerk

    .bin - Dateien öffnen/ entpacken, bzw. virtuelles Laufwerk: Hi, hab hier ne .bin -Datei liegen und bin leider noch vom Windoof verseucht. Da wärs ja kein Problem, aber wie macht man das unter Linux? Kann...