logo

Örneklerle Linux/Unix'te Tar komutu

Tar komutu şunun kısaltmasıdır: bant arşivi Linux'ta. Bu komut Arşiv oluşturmak ve arşiv dosyalarını çıkarmak için kullanılır. İçinde Linux Arşivleme işlevini kolaylaştıran temel komutlardan biridir. Bu komutu sıkıştırılmamış ve sıkıştırılmış arşiv dosyaları oluşturmak ve bunları değiştirmek ve bakımını yapmak için kullanabiliriz.

Tar, bilgisayarlarda birden fazla dosyayı tek bir arşiv dosyasında toplayan bir bilgisayar yazılımı yardımcı programıdır. Genellikle yedekleme ve dağıtım amacıyla tarball olarak bilinir. Başlık 'teyp arşivinden' alınmıştır çünkü aslında dosya sistemlerinden hiçbirini kullanmayan sıralı G/Ç aygıtlarındaki verileri belirtmek için geliştirilmiştir. Tar tarafından oluşturulan arşiv veri grupları, dizin organizasyonu, dosya erişim izni, sahiplik, zaman damgaları ve ad gibi birçok dosya sistemi parametresini içerir. Pax lehine POSIX katranı terk etti, katran henüz yaygın olarak kullanılıyor.

İlk olarak Ocak 1979'da tp programının yerine geçen Unix Sürüm 7'de duyuruldu. Verileri depolamak için dosya yapısı POSIX.1-1988 ve daha sonra POSIX.1-2001'de standartlaştırıldı ve neredeyse tüm modern dosya arşivleme sistemleri tarafından desteklenen bir model haline geldi. Unix benzeri işletim sistemleri genellikle tar dosyalarını destekleyen araçlar ve bunları sıkıştırmak için kullanılan bzip2 ve gzip gibi yardımcı programları içerir.
Microsoft 10 Nisan 2018 Güncellemesinden bu yana, BSD-tar Microsoft Windows'ta bulunmaktadır ve bu kalıpları Windows'ta okumak ve yazmak için iki veya daha fazla üçüncü taraf araç bulunmaktadır.

tar dosya formatları

Güncel ve geçmiş olanlar da dahil olmak üzere birçok tar dosyası formatı mevcuttur. POSIX'te iki tar formatı yazılmıştır: pax ve ustar.

Başlık

Dosya başlığı kaydı bir dosyanın meta verilerini içerir. Başlık kaydında, farklı bayt sıralamaları kullanan farklı mimariler arasında esneklik sağlamak için bilgiler ASCII standartlarında kodlanır. Dolayısıyla, bir arşivdeki her dosya bir ASCII metin dosyasıysa ve ASCII adları içeriyorsa, arşiv bir ASCII metin dosyasıdır (birkaç NUL karakterine sahiptir).

Aşağıdaki tabloda gerçek Unix tar formatına göre tanımlanan çeşitli alanlardan bahsedilmektedir. Bağlantı dosyası/gösterge türü tablosu birkaç modern uzantı içerir. Bir alan, kullanılmadığı takdirde çeşitli NUL baytlarıyla doldurulur.

POSIX.1-1988 öncesi katran başlığı:

Alan Alan boyutu Alan Ofseti
Dosya adı 100 0
Dosya modu 8 100
Sahibin sayısal kullanıcı kimliği 8 108
Grubun sayısal kullanıcı kimliği 8 116
Bayt dosya boyutu 12 124
Sayısal Unix zamanı biçiminde son değişiklik zamanı 12 136
Başlık kaydı için sağlama toplamı 8 148
Bağlantı göstergesi 1 156
Bağlantılı dosya adı 100 157

Ustart formatı

Ustar formatında, 1988'den itibaren POSIX IEEE P1003.1 standardı tarafından duyurulan hemen hemen her modern tar programı arşivleri yazar ve okur. Ekstra başlık alanları ekledi. Önceki tar programları ek bilgilerden kaçınıyordu, ancak yeni programlar yeni formatın kullanımda olup olmadığına karar vermek için 'Ustar' dizisinin varlığını kontrol edecek.

Alan Alan boyutu Alan Ofseti
Önceki formatta olduğu gibi birçok alan 156 0
Bayrak yazın 1 156
Önceki formattakine benzer alan 100 157
'ustar' Ustar göstergesi, ardından NUL 6 257
'00' Ustar versiyonu 2 263
Sahibinin kullanıcı adı 32 265
Sahibin grup adı 32 297
Cihazın ana numarası 8 329
Cihazın küçük numarası 8 337
Dosya adı öneki 155 3. 4. 5

POSIX.1-2001/pax

Sun, 1997'de tar formatına uzantı eklemek için bir teknik önerdi. Daha sonra bu, POSIX.1-2001 standardı için onaylandı. Formata pax formatı veya genişletilmiş tar formatı denir. Mtime, atime, linkpath, gname, uname,sizes, gid, uid ve grup/kullanıcı adları ve yol adları için bir karakter kümesi tanımı dahil olmak üzere bazı etiketler POSIX standardı tarafından belirtilir.

Tar'ın temel uygulamaları

Temel uygulamalar köken sırasına göre belirtilmiştir:

    solaris katranı Gerçek Unix V7 temel alınarak Solaris İşletim Sisteminde varsayılan olarak gelir. GNU katranı hemen hemen her Linux dağıtımında varsayılandır. 1987'de başlayan kamu malı uygulama pdtar'ına dayanmaktadır. Son sürümler GNU, pax, v7 ve ustar gibi birçok formatı kullanabilir. FreeBSD katranı Mac OS X gibi hemen hemen her Berkeley Yazılım Dağıtımı tabanlı işletim sisteminde varsayılan bir tar haline geldi. Schily katranı Uzantılarından birkaçı ünlü olduğundan tarihsel olarak önemlidir. İlk olarak Nisan 1997'de piyasaya sürüldü. Python tar dosyası gnu, pax ve ustar gibi iki veya daha fazla tar formatını destekler; SunOS katranını ve V7 formatlarını okuyabilir ancak genişletemez; pax arşiv oluşturmak için varsayılan bir formattır. 2003 yılından bu yana kullanıcılara sunulmaktadır.

Ayrıca çoğu cpio ve pax uygulaması iki veya daha fazla tar dosyası türünü oluşturabilir ve okuyabilir.

tar komutunun sözdizimi:

 tar [options] [archive-file] [directory or file to be archived] 

Tar komutundaki seçenekler

Tar komutundaki çeşitli seçenekler aşağıda listelenmiştir:

    -C:Bu seçenek arşivi oluşturmak için kullanılır.-F:Bu seçenek, dosyanın belirtilen adıyla birlikte bir arşiv oluşturmak için kullanılır.-X:Bu seçenek arşivleri çıkarmak için kullanılır.-içinde:Mevcut arşiv dosyasına arşiv eklemek için kullanılabilir.-T:Arşivlenen dosyanın içindeki dosyaları görüntülemek veya listelemek için kullanılır.-A:Bu seçenek arşiv dosyalarını birleştirmek için kullanılır.-içinde:Ayrıntılı bilgileri göstermek için kullanılabilir.-J:Arşiv tar dosyalarını tbzip yardımıyla filtrelemek için kullanılır.-İle:Bu bir zip dosyasıdır ve gzip yardımıyla tar dosyası oluşturan tar komutuna bilgi verir.-R:Bu seçenek mevcut bir .tar dosyasındaki bir dizini veya dosyayı güncellemek ve eklemek için kullanılır.-İÇİNDE:Bu seçenek arşiv dosyasını doğrulamak için kullanılır.

Arşiv Dosyasına Giriş

Arşiv dosyası, meta veri içeren birden fazla dosya içeren bir dosya olarak tanımlanabilir. Bu dosyalar, daha kolay saklama ve taşınabilirlik amacıyla birden fazla veri dosyasını tek bir dosyada bir araya toplamak için kullanılır. Daha az depolama alanı tüketmek amacıyla dosyaları sıkıştırmak için de kullanılabilir.

Tar komutu örnekleri

Tar komutunda yaygın olarak kullanılan önemli örneklerden bazıları şunlardır:

1. -cvf seçeneği ile sıkıştırılmamış tar arşivi oluşturmak

Bu seçenek bir tar dosyasının şu şekilde bilinmesini sağlar: dosya.tar . İçerisindeki her .txt dosyasının arşividir mydir dizin.

Komut aşağıdaki gibidir:

java operatörü
 $ tar cvf file.tar *.txt 

Linux'ta tar komutu

2. -xvf seçeneği ile arşivden dosyaların çıkarılması

Bu seçenek, dosyaları arşivler aracılığıyla çıkarabilir.

Komut aşağıdaki gibidir:

 $ tar xvf file.tar 

Linux'ta Tar komutu

3. -z seçeneğiyle tar arşivi üzerinden gzip sıkıştırması

Bu seçenek bir tar dosyasının şu şekilde bilinmesini sağlar: file.tar.gz. Her .txt dosyasının arşividir.

Komut aşağıdaki gibidir:

 $ tar cvzf file.tar.gz *.txt 

Linux'ta tar komutu

4. gzip tar arşivini -xvzf seçeneğiyle çıkartmak

Bu seçenek, dosyaları file.tar.gz tar arşivlenmiş dosyalar aracılığıyla çıkarabilir.

Komut aşağıdaki gibidir:

 $ tar xvzf file.tar.gz 

Linux'ta tar komutu

5. -j seçeneğiyle sıkıştırılmış tar dosyaları oluşturmak

Bu seçenek arşiv dosyalarını oluşturmamıza ve sıkıştırmamıza yardımcı olacaktır. Hem sıkıştırmayı açma hem de sıkıştırma, gzip'e kıyasla daha fazla zaman alır.

Komut aşağıdaki gibidir:

 $ tar cvfj file.tar.tbz hello1.txt 

Linux'ta tar komutu

6. Linux'ta belirtilen tek dizinin veya dosyanın tararını kaldırın

Bu seçenek, geçerli dizinimizde veya belirtilen dizin içindeki herhangi bir dosyanın tarını -C seçeneğiyle kaldırmak için kullanılır.

Komut aşağıdaki gibidir:

 $ tar -xvf file.tar -C file's path in the directory 

Linux'ta tar komutu

Veya,

 $ tar -xvf file.tar 

Linux'ta tar komutu

7. Linux'ta birden fazla .tar.tbz, .tar.gz, .tar dosyasının tararını kaldırın

Bu seçenek bize yardımcı olacaktır yaymak veya tar.bz2, tar.gz ve tar arşiv dosyasından birden fazla dosyayı çıkarın.

Bu seçeneğin örneği aşağıdaki gibidir:

 $ tar -jxvf file.tar.tbz 'hello1.txt' 

Linux'ta tar komutu

Veya,

 $ tar -zxvf file.tar.gz 'hello1.txt' 'hello2.txt' 

Linux'ta tar komutu

Veya,

 $ tar -xvf file.tar 'hello1.txt' 'hello2.txt' 

Linux'ta tar komutu

8. Mevcut tar.tbz, tar.gz, tar dosyasının boyutunu kontrol edin

Komut, yukarıda belirtilen arşiv dosyasının boyutunu kilobayt (KB) cinsinden göstermemize yardımcı olacaktır.

Komut aşağıdaki gibidir:

 $ tar -czf - file2.tar.tbz | wc -c 

Veya,

 $ tar -czf - file1.tar.gz | wc -c 

Veya,

 $ tar -czf - file.tar | wc -c 

Linux'ta tar komutu

9. Mevcut tar dosyasını güncelleyin

Linux'ta mevcut bir tar dosyasını güncelleme komutu aşağıdaki gibidir:

 $ tar rvf file.tar *.txt 

10. İçerik listesi ve tar dosyasını tf seçeneği ile tanımlayın

Bu seçenek tüm arşiv dosyasının listesini listelememize yardımcı olacaktır. Ayrıca herhangi bir tar dosyasındaki belirli içerikleri listeleyebiliriz.

Komut aşağıdaki gibidir:

 $ tar tf file.tar 

Linux'ta Tar komutu

11. -tvf seçeneği ile arşivi görüntüleyin

Linux'ta arşivi görüntülemek için -tvf seçeneğini kullanabiliriz.

Komut aşağıdaki gibidir:

 $ tar -tvf file.tar 

Linux'ta tar komutu

12. Bir tar dosyası bulmak için dosya adını bağımsız değişken olarak iletin

Bu seçenek arşivlenen dosyaları bilgileriyle birlikte görüntüleyebilir.

Komut aşağıdaki gibidir:

 $ tar tvf file.tar filename 

Linux'ta Tar komutu

13. Aradığımız şeyi aramak için 'grep komutunu' atmak için pipe'ı kullanmak

Bu seçenek, yalnızca belirtilen görseli veya metni listelememize yardımcı olacaktır. kavramak arşivlenmiş dosyalar aracılığıyla.

Komut aşağıdaki gibidir:

 $ tar tvf file.tar | grep 'filename.file' 

Veya,

 $ tar tvf file.tar | grep 'text to search' 

Linux'ta tar komutu

Joker Karakterlere Giriş

Alternatif olarak joker karakterler, Linux'ta joker karakter veya joker karakter olarak anılır. Birden fazla karakteri temsil etmek veya değiştirmek için kullanılan bir semboldür.

Tipik olarak joker karakterler, tek bir karakteri gösteren bir soru işareti (?) veya birden fazla karakteri gösteren bir yıldız işaretidir (*).

Örnek-

14. .webp formatında bir görsel bulun

File.tar arşivinden yalnızca .webp uzantılı dosyaları çıkarmamıza yardımcı olacaktır. -wildcards seçeneği, çıkartılacak dosya adındaki joker karakterlerin yorumlanması için tar'ı bilgilendirir.

Dosyanın adı (*.webp), joker karakterin (*) herhangi bir kabuk tarafından hatalı şekilde genişletilmesine karşı korunması için tek tırnak işaretleri içine alınmıştır.

Komut aşağıdaki gibidir:

 $ tar tvf file.tar --wildcards '*.webp' 

Linux'ta tar komutu

Not: Yukarıdaki komutta, o belirli dizinde bulunan her dosyayı almak için dosya adının konumuna '*' simgesi uygulanır.

15. Tar arşivindeki dosyaları silin

Dosyaları ve tar arşivini kaldırmak için --delete seçeneğini kullanabiliriz.

Komut aşağıdaki gibidir:

 $ tar --delete -f archive.tar file_name 

Örnek:

 tar -delete -f file.tar hello1.txt 

Çıktı:

Linux'ta tar komutu

merhaba1.txt dosya file.tar arşivinden kaldırıldı:

Linux'ta tar komutu