Tar einen ganzen Ordner mit AUSNAHME einiger Dateien und Ordner?

Ich habe eine Ordnerstruktur wie folgt:

file1
file2
file3
file4
folder1
folder2

Wie kann ich alle Dateien und Ordner mit Ausnahme von file1 und folder1 tar-zip, ohne jede Datei zu schreiben?

 1
Author: coderama, 2009-11-11

3 answers

Tar hat einen -- exclude Schalter.

 4
Author: gbarry,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-11-11 08:11:06

Sie können die Option --exclude=pattern verwenden, die verhindert, dass Dateien oder Elemente, deren Name mit dem Platzhalter (Muster) übereinstimmt, bearbeitet werden. Um beispielsweise ein Archiv mit dem gesamten Inhalt des Verzeichnisses src mit Ausnahme von Dateien zu erstellen, deren Namen auf .exe enden, verwenden Sie den Befehl tar -cf src.tar --exclude='*.exe' src

 5
Author: James,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-04-30 13:46:26

Wie kann ich alle Dateien und Ordner mit Ausnahme von file1 und folder1 tar zip, ohne jede Datei zu schreiben?

Angenommen, der Hauptordner, der alle Dateien/Ordner enthält, die Sie komprimieren möchten, befindet sich unter /home/admin/mystuff/ (dh /home/admin/mystuff/file1, /home/admin/mystuff/folder1/, etc), sollte eines der folgenden funktionieren.


Wenn Sie sich derzeit im Ordner /home/admin/ befinden, können Sie Folgendes tun:

tar -cz --exclude mystuff/file1 --exclude mystuff/folder1/ -f my_new_file.tar.gz mystuff

Oder, wenn Sie sich in dem Verzeichnis befinden, das Sie komprimieren möchten (in diesem Fall, /home/admin/mystuff/), könnten Sie tun:

tar -cz --exclude file1 --exclude folder1/ -f my_new_file.tar.gz .

Notieren Sie den Punkt am Ende der zweiten Option.

Beachten Sie auch, dass ich tar -cz verwendet habe, weil ich .tar.gz Dateien bevorzuge... Wenn Sie nur eine .tar Datei möchten, können Sie einfach den Befehl in tar -c --exclude [...] ändern (z von -cz löschen) und dann die Ausgabedatei von my_new_file.tar.gz in my_new_file.tar ändern.

 1
Author: jerdiggity,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-05-25 19:47:36