Eğer yazarken:
tar -xf *.gz
tar
komut (örneğin) görür: Bu arşivde abc.tar.gz
den def.tar.gz
ve ghi.tar.gz
ayıklamak için bir istek olarak yorumlanır
tar -xf abc.tar.gz def.tar.gz ghi.tar.gz
. Dosyalar orada olmadığından, uyarı mesajını alırsınız.
Başka bir deyişle, tar
tek seferde (tek bir işlemde) tek bir tar
dosyasında (muhtemelen sıkıştırılmış) çalışır. Birden fazla katranlı dosyalarda çalışmaz. abc.tar.gz
bir dosya pqr/xyz/important.c
içeriyorsa, belirterek sadece bir dosya ayıklayabileceğinden
Not: kullanılan
tar -xf abc.tar.gz pqr/xyz/important.c
ifade, bu ifadenin sadece bir türüdür.
(Ve evet, tar
bir tar
dosya için nedenler olabilir. Eğer bir gömmek Örneğin, Gmail Ancak. Bir katran dosyası veya çalıştırılabilir bir dosya içeren gzip'li tar dosyasını gemi izin vermez sıkıştırılmamış bir tar dosyası içinde gzipped tar dosyası, çalıştırılabilir dosyayı bulmak için iç dosyanın içine bakmaz. Bunu, bir çalıştırılabilir dosya ile bir tar dosyası göndermeye ihtiyaç duyduğunda kullanırım.
aslında bu argüman sözdizimi kaynaklanır katran komut satırında sadece bir katranı kabul eder ve geri kalanı başka bir şey olarak yorumlanır. Ayrıca xargs kullanabilirsiniz ('ls * .gz | xargs -n1 tar -xzf' veya benzeri). – ShinTakezou
tar argüman olarak glob modelini kabul etmez (yani yorumlamaz) afaik – ShinTakezou
@ShinTakezou: ancak kabuk '* .gz' gösterimini genişletir; 'tar' (genellikle) '' .gz' görmez. Bazen, dosya adında '*' ile ayıklamak istersiniz. Örneğin: tar -xf abc.tar.gz 'src/prog/* name. *' 'Src/prog/bigname.c',' src/prog/smallname.h' gibi dosyaları çıkartır; tek tırnaklar, kabuğun genişlemesini engeller * ve 'tar' gerçekten de genişletir. –