Tim Tepaße: Packen mit tar: wie kann ich Dateien ausschließen?

Beitrag lesen

Hallo,

eine unixoide Shell?

meinePhotos/123/123.jpg
   meinePhotos/123/.listing
   meinePhotos/123/thumbs/123.jpg

Man kann bei tar mit der Option --exclude bestimmte Muster von Dateipfaden ausschließen.

Du könntest aber auch anders denken: Du listest tar einfach die Dateien auf, die Du haben willst und das bequem mit der in der Shell eingebauten shell expansion:

$ ls -a foo/
  . .hidden eins.jpg zwei.jpg
  .. drei.jpg thumbs

(Ein Nachbau Deines Verzeichnisses)

$ echo foo/*
  foo/drei.jpg foo/eins.jpg foo/thumbs foo/zwei.jpg

(Einfache shell expansion selektiert alles, ausser hidden Files)

$ echo foo/*.jpg
  foo/drei.jpg foo/eins.jpg foo/zwei.jpg

(Ein genaueres Muster selektiert einfach nur die Dateien, die Du haben willst)

$ tar --create --verbose --file=bla.tar foo/*.jpg
  foo/drei.jpg
  foo/eins.jpg
  foo/zwei.jpg

(Auch im Aufruf von tar findet die shell expansion statt. tar kriegt also einfach nur die Dateien Du willst)

$ tar --list --file=bla.tar
  foo/drei.jpg
  foo/eins.jpg
  foo/zwei.jpg

(... und verpackt diese auch)

$ rm -R foo/
  $ tar --extract --file=bla.tar
  $ ls -a foo/
  . .. drei.jpg eins.jpg zwei.jpg

(Tada!)

Tim