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 --include
Option, 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.