Wyodrębnij określone pliki z archiwum tar za pomocą symbolu wieloznacznego


19

Próbuję utworzyć skrypt, aby wyodrębnić tylko zdjęcia JPEG z archiwum zawierającego wiele rodzajów plików.

Aby to zrobić, próbowałem użyć:

   tar -xf MyTar.tar *.jpg

ale nie udało się (* .jpg nie znaleziono) i sugeruje, żebym użył „--wildcard”. Więc próbowałem

tar -xf MyTar.tar --wildcard *.jpg

Zrobiłem to, ale potem ten sam błąd i inne ostrzeżenie mówi mi, że opcja „--wildcard” jest niejednoznaczna.

Przeglądałem strony podręcznika systemu tar, ale nie znalazłem pojęcia o problemie.


Która smoła i która wersja? Wklej wynikitar --version
smci

Odpowiedzi:


33

W końcu znalazłem odpowiedź po dobrej przerwie. Opcja jest wieloznaczne s , liczba mnoga ...

Więc polecenie

tar -xf MyTar.tar --wildcards "*.jpg"

zrobiłem dokładnie to, czego potrzebowałem.


3

Umieść cudzysłowy w ten "*.jpg"sposób, aby powłoka nie próbowała go rozwinąć, a zamiast tego przekaże go wprost do tar. Chcesz, aby tar oceniał symbol wieloznaczny, a nie powłokę, a cytaty to robią.


0

W przypadku niektórych starszych wersji tar, z pliku „man” wyodrębnia się :

Symbole zastępcze nazw plików nie mogą być używane do wyodrębniania plików z archiwum. Zamiast tego użyj polecenia w postaci:

tar xvf ... /dev/rmt/0 `tar tf ... /dev/rmt/0 | grep 'pattern' `
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.