Tar nur die Verzeichnisstruktur

9

Ich möchte meine Verzeichnisstruktur ohne die Dateien kopieren. Gibt es im tar eine Option, alle Dateien zu ignorieren und nur die Verzeichnisse rekursiv zu kopieren.

    
Balualways 21.08.2012, 15:09
quelle

4 Antworten

10

Sie können find verwenden, um die Verzeichnisse abzurufen und sie dann zu tarieren:

%Vor%

Wenn Sie mehr als ungefähr 10000 Verzeichnisse haben, verwenden Sie Folgendes, um xargs limits zu umgehen:

%Vor%     
perreal 21.08.2012 15:15
quelle
4

Verzeichnisnamen, die Leerzeichen oder andere Sonderzeichen enthalten, erfordern möglicherweise zusätzliche Aufmerksamkeit. Zum Beispiel:

%Vor%

Hier sind einige Variationen, um diese Fälle von "ungewöhnlichen" Verzeichnisnamen zu behandeln:

%Vor%

Wenn -print0 mit find verwendet wird, werden Dateinamen als nullterminierte Strings ausgegeben. mit -0 xargs interpretiert Argumente auf die gleiche Weise. Wenn Sie null als Terminator verwenden, stellen Sie sicher, dass auch Dateinamen mit Leerzeichen und Zeilenumbrüchen korrekt interpretiert werden.

Es ist auch möglich, Ergebnisse direkt von find nach tar zu leiten:

%Vor%

Wenn tar mit -T - (oder - files-from - ) aufgerufen wird, liest es Dateinamen von stdin und erwartet, dass jeder Dateiname durch eine Zeile getrennt wird Pause.

Für maximale Wirkung kann dies mit Optionen für nullterminierte Strings kombiniert werden:

%Vor%

Von diesen halte ich diese letzte Version für die robusteste, da sie sowohl ungewöhnliche Dateinamen unterstützt als auch (im Gegensatz zu xargs) nicht inhärent durch Systembefehlszeilengrößen begrenzt ist. (siehe xargs --show-limits )

    
humbletim 21.10.2013 21:53
quelle
0
%Vor%     
mschr 21.08.2012 15:14
quelle
0

Gehe in den Ordner, in dem du anfangen willst (deshalb benutzen wir find dot) Speichern Sie die Tar-Datei woanders. Ich glaube, ich habe einen Fehler gemacht, als ich es genau dort gelassen habe. Teer mit r nicht c. Ich denke mit cf erstellst du immer neue Dateien und nur dich Holen Sie sich den letzten Satz von Dateiunterverzeichnissen. Teer wird an die TAR-Datei angehängt. - Keine Rekursion, da der Fund Ihnen bereits die gesamte Liste der Dateien liefert also willst du nicht rekurrieren.

finden. -type d | xargs tar rf /irgendwoinsel / was auch immer-dirsonly.tar --no-recursion

tar tvf /irgendwo /was-dirsonly.tar | mehr, um zu überprüfen, was du hast.

    
Stan Towianski 02.08.2013 16:40
quelle

Tags und Links