Linux-Tar-Befehlsoption

Linux-Tar-Befehlsoption

Ich weiß, wie ich einen Haufen Dateien tarnen kann, abzüglich einiger Dateien, die ich nicht haben möchte:

tar --exclude=./*.jpg -pcjvf all.tar.gz ./

Hier tarne ich alle Dateien außer den JPG-Erweiterungen.

Ich möchte das Gegenteil tun. Ich muss nur bestimmte Dateien tarnen. Nach dem Googeln hatte ich nicht viel Glück bei der Suche nach Beispielen.

Gibt es mit dem Tar-Befehl die Option --include?

Antwort1

Es gibt keine --includeOption, da Sie einfach alle Dateien, die Sie einschließen möchten, als Parameter anhängen könnten tar. Wenn Sie per Platzhalter einschließen möchten, verwenden Sie find:

tar -pcjvf specific.tar.gz $(find -name *.jpg)

Antwort2

Habe ich etwas übersehen? Warum nicht einfach Folgendes tun:

tar -pcjvf pictures.tar.gz ./*.jpg

Antwort3

Etwas wie das:

tar -pcjvf images.tar.gz ./*.jpg ./*.jpeg ./*.png

Antwort4

Ich würde es tun, indem ich die Ausgabe von „find“ an Tar weiterleite:

find /your/directory -type f -name '*.jpg' | tar --files-from=- -cvf meow.tar

Der Befehl „find“ druckt alle JPGs, die in /Ihrem/Verzeichnis gespeichert sindrekursiv, und die magische Option --files-from von tar liest die Dateien von '-', was stdin bedeutet, und tarnt sie. Ich finde das besonders nützlich, weil rsync auch eine Option --files-from hat, sodass ich mir nur einen Befehl zur Dateiangabe merken muss. Außerdem ist 'find' leistungsfähiger als die Dateiangabemöglichkeiten von tar oder rsync.

verwandte Informationen