Ich versuche, einen Ordner (/var/www/
) auf ~/www_backups/$time.tar
wobei $time
das aktuelle Datum ist.
Folgendes habe ich:
cd /var/www && sudo tar -czf ~/www_backups $time"
Ich bin völlig verloren und bin schon seit Stunden dabei. Nicht sicher, ob -czf
korrekt ist. Ich möchte einfach den gesamten Inhalt in /var/www
in eine $time.tar
-Datei kopieren und die Dateiberechtigungen für alle Dateien beibehalten Dateien. Kann mir jemand helfen?
Kommentare
- Sie benötigen eine “ auf der anderen Seite von
$time
ebenfalls.
Antwort
An tar
und gzip
eines Ordners lautet die Syntax:
tar czf name_of_archive_file.tar.gz name_of_directory_to_tar
Die -
mit czf
ist optional.
Wenn Sie tar
die Verwenden Sie im aktuellen Verzeichnis .
, um dies zu bestimmen.
Um Dateinamen dynamisch zu erstellen, verwenden Sie das Dienstprogramm date
(siehe seine Manpage für die verfügbaren Formatoptionen). Beispiel:
cd /var/www && tar czf ~/www_backups/$(date +%Y%m%d-%H%M%S).tar.gz .
Dadurch wird eine Datei mit dem Namen 20120902-185558.tar.gz
erstellt.
Unter Linux unterstützt Ihre tar
wahrscheinlich auch die BZip2-Komprimierung mit der j
anstelle von z
Möglichkeit. Und möglicherweise andere. Überprüfen Sie die Manpage auf Ihrem lokalen System.
Kommentare
- Dies ist perfekt, danke. Ich habe jedoch ein kleines Problem. Nach dem Erstellen einer TAR-Datei von / var / www wird diese in den Verzeichnissen / var / www in der TAR-Datei abgelegt. Hier ‚ ist der Code, den ich ‚ jetzt benutze
sudo tar -czf ~/www_backups/$time.tar /var/www/"
Stellen Sie sich vor, ich habe eine Datei namens test.txt in / var / www. Nachdem ich eine Teerkopie der Datei erstellt habe, wird sie beim Extrahieren in den Verzeichnissen / var / www abgelegt. Ist das sinnvoll? Ich hoffe es ist schwer zu erklären. Ich werde nach BZip2-Unterstützung suchen, danke für den Vorschlag! - Das ‚ ist der Grund, warum Sie zuerst
cd
zum Verzeichnis, das Sie verpacken möchten, danntar cf file.tar .
– das letzte.
anstelle der Angabe des vollständigen Pfads macht die Pfade innerhalb des Archivs relativ zum Aktuelles Verzeichnis. Sie können auch die Option-C
für tar verwenden (siehe Manpage). - Ja, das hat viel besser funktioniert. Vielen Dank!
- @Qwertylicious
-f
(von der Manpage)Read the archive from or write the archive to the specified file.The filename can be - for standard input or standard output.
- Bei neueren Versionen von tar wird in Großbuchstaben
J
(anstelle vonz
) die xz LZMA2-Komprimierung.
Antwort
Beispiele für die gängigsten Komprimierungsalgorithmen
Der Fragentitel hierfür lautet einfach “ Komprimieren Sie a Ordner mit tar? “ Da dieser Titel sehr allgemein ist, aber die Frage und Antwort viel spezifischer sind und aufgrund der sehr großen Anzahl von Ansichten, die diese Frage angezogen hat, fühlte ich es Es wäre vorteilhaft, eine aktuelle Liste von Beispielen für das Archivieren / Komprimieren und Extrahieren / Dekomprimieren mit verschiedenen häufig verwendeten Komprimierungsalgorithmen hinzuzufügen.
Diese wurden mit Ubuntu 18.04.4 getestet. Sie sind für den allgemeinen Gebrauch sehr einfach, können jedoch mithilfe der Techniken in der oben akzeptierten Antwort und der hilfreichen Kommentare leicht in die spezifischeren Frageninhalte des OP integriert werden.
Eine Sache, die für den allgemeineren zu beachten ist Zielgruppe ist, dass tar
die erforderlichen Erweiterungen (wie .tar.gz
) nicht automatisch hinzufügt – der Benutzer muss diese explizit hinzufügen, wie in der Befehle unten:
# 1: tar (create uncompressed archive) all files and directories in the current working directory recursively into an uncompressed tarball tar cvf filename.tar * # 2: Untar (extract uncompressed archive) all files and directories in an uncompressed tarball recursively into the current working directory tar xvf filename.tar # 3: tar (create gzipped archive) all files and directories in the current working directory recursively into a tarball compressed with gzip tar cvzf filename.tar.gz * # 4: Untar (extract gzipped archive) all files and directories in a tarball compressed with gzip recursively into the current working directory tar xvf filename.tar.gz # Note: same options as 2 above # 5: tar (create bzip2"ed archive) all files and directories in the current working directory recursively into a tarball compressed with bzip2 tar cvjf filename.tar.bz2 * # Note: little "j" in options # 6: Untar (extract bzip2"ed archive) all files and directories in an tarball compressed with bzip2 recursively into the current working directory tar xvf filename.tar.bz2 # Note: same options as 2 and 4 above # 7: tar (create xz"ed archive) all files and directories in the current working directory recursively into a tarball compressed with xz tar cvJf filename.tar.xz * # Note: capital "J" in options # 8: Untar (extract xz"ed archive) all files and directories in an tarball compressed with xz recursively into the current working directory tar xvf filename.tar.xz # Note: same options as 2, 4, and 6 above
Siehe die Manpage tar (am besten man tar
auf Ihrem speziellen Computer) für weitere Details. Im Folgenden fasse ich die oben verwendeten Optionen direkt auf der Manpage zusammen:
-c, –create
ein neues Archiv erstellen-x, –extract, –get
Dateien aus einem Archiv extrahieren-v, –verbose
listet die verarbeiteten Dateien ausführlich auf-z, –gzip
filtert das Archiv durch gzip-j, –bzip2
Filtern Sie das Archiv durch bzip2-J, –xz
filtert das Archiv durch xz-f, –file = ARCHIVE
verwendet Archivdatei oder Gerät ARCHIVE
Es ist nicht erforderlich, das -
vor den kombinierten Optionen oder das =
-Zeichen hinzuzufügen zwischen der Option f
und dem Dateinamen.
Ich habe all dies aus meinem kürzlich erschienenen Artikel erhalten, der weiter erweitert wird, wenn ich Zeit habe, daran zu arbeiten es.