Ein Client lädt Dateien auf einen Entwicklungsserver hoch. Wenn es Zeit ist, das Projekt auf einen Produktionsserver hochzuladen, werden diese Dateien nicht mehr benötigt, und wir möchten sie aus der TAR-Datei ausschließen, die wir schließlich in die Produktion übertragen werden. Wir möchten das Verzeichnis jedoch weiterhin auf dem neuesten Stand halten. Es werden nur die Dateien nicht benötigt
Mit Ubuntu 16 und tar 1.28 haben wir versucht:
tar -vczf archive.tar.gz . --exclude=wp-content/uploads/wpallimport/files/*
tar: Cowardly refusing to create an empty archive
Wir haben auch versucht, den Parameter exclude = in einfache und doppelte Anführungszeichen zu setzen, kein Glück.
tar -vczf archive.tar.gz . --exclude='wp-content/uploads/wpallimport/files/*'
tar: Cowardly refusing to create an empty archive
Die offizielle Website zeigt - ohne Gleichheitszeichen ausschließen
tar -vczf file.tar.gz --exclude 'directory/*' .
und gibt den gleichen Fehler.
Wie wird das gemacht?
=
nach dem Ausschluss.Antworten:
Das übliche Gotcha mit
tar
's--exclude
Option ist, dass es relativ zu dem Verzeichnisargument ist , das z. B. angegeben istdann
schließt den Inhalt von nicht aus
subsubdir
(es wird versucht auszuschließendir/dir/subdir/subsubdir/*
, was mit nichts übereinstimmt); was du willst istAFAIK die Reihenfolge spielt keine Rolle, außer dass die Ausgabedatei sofort der
f
Option folgen muss .quelle
--exclude=subdir/subsubdir/*
)Angenommen, Sie haben ein Verzeichnis mit dem Namen "top-dir" mit den Unterordnern "dir / subdir". Wenn Sie den Inhalt eines Verzeichnisses "dir / subdir" ausschließen möchten, aber nicht das Verzeichnis selbst, lautet die tatsächlich funktionierende Befehlszeile
tar -zcp --exclude='dir/subdir/*' -f archive.tgz top-dir
.Sie müssen den
-f
Schalter nach dem--exclude
einen und vor dem Namen der Archivdatei verwenden.quelle
Erfolgsfall:
Wenn Sie den vollständigen Pfad für die Sicherung angeben, sollte in exclude auch der vollständige Pfad verwendet werden.
tar -zcvf /opt/ABC/BKP_27032020/backup_27032020.tar.gz --exclude = '/ opt / ABC / csv / ' --exclude = '/ opt / ABC / log / ' / opt / ABC
Wenn Sie den aktuellen Pfad für die Sicherung angeben, sollte in exclude auch nur der aktuelle Pfad verwendet werden.
tar -zcvf backup_27032020.tar.gz --exclude = 'ABC / csv / ' --exclude = 'ABC / log / ' ABC
Fehlerfall:
Wenn Sie das Verzeichnis "currentpath" für die Sicherung und den vollständigen Pfad für die Ignorierung angeben, funktioniert dies nicht
Hinweis: Das Erwähnen von Ausschluss vor / nach dem Sicherungsverzeichnis ist in Ordnung.
quelle