tar etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
tar etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

9 Temmuz 2020 Perşembe

tar komutu İle Sıkıştırma

Giriş
Söz dizimi şöyle
tar+seçenekler+yeni dosya ismi+hariç bırakılacak dosyalar + sıkıştırılacak dosyalar
Açıklaması şöyle.
A simple invocation of tar might be something like: tar cf foo.tar file1 file2 file3. This tells tar to create an archive in a file named foo.tar containing file1, file2 and file3. (Note that with tar, the - before the "command" arguments is optional, so you can use cf or -cf as you see fit).
-b seçeneği
Açıklaması şöyle
tar archives have a minimum size of 10240 bytes by default; see the GNU tar manual for details (but this is not GNU-specific).
Örnek
Şöyle yaparız
With GNU tar, you can reduce this by specifying either a different block size, or different block factor, or both:
Şöyle yaparız
tar -cv -b 1 -f file.tar file.txt
-c seçeneği
compress anlamına gelir.

-C seçeneği
Açıklaması şöyle. Sıkıştırmanda önce change directory yapılacak yeri belirtir.
-C, --directory=DIR
Change to DIR before performing any operations. This option is order-sensitive, i.e. it affects all options that follow.
Örnek
Şöyle yaparız.
tar -xzf file.gz -C /opt/jdk
Örnek
Şöyle yaparız.
$ tar -zcf - -C /path/to/files . | ssh user@host "tar -zx - -C /path/to/destination"
Eğer bu seçeneği kullanmazsak dosyaları şöyle elde ederiz. Yani tüm dosya yolu gönderilir. Ancak bu seçeneği kullanırsak sadece dosya ismi gönderilir.
/path/to/files/index.html --> /path/to/destination/path/to/files/index.html
Şunu elde ederiz.
/path/to/destination/index.html
--exclude seçeneği
Örnek
İstersek bir sürü exclude dizini verebiliriz. Şöyle yaparız.
tar -cvpzf /media/username/TOSHIBA\ EXT/root_copy/root-copy.tar.gz --exclude='/mnt' 
  --exclude='/run' --exclude='/proc' --exclude='/sys' --exclude='/media' --exclude='/dev'
  --exclude='/lost+found' --exclude='/tmp' --exclude='/boot' --exclude=".*lost+found" 
  / 2> /root/tar-errors.txt
Örnek
Şöyle yaparız.
-c compress anlamına gelir.
-v verbose anlamına gelir
-p preserve permissions anlamına gelir.
-z gzip kullanılacağı anlamına gelir
-f oluşturulacak dosya ismini belirtir.

Sıkıştırılacak dosyalar için / yolu verildiği için altındaki /backup/mybackup.tar.gz dosyasını hariç bırakmak için kullanılır.
tar -cvpzf mybackup.tar.gz --exclude=/backup/mybackup.tar.gz --one-file-system /
-f seçeneği
Oluşturulacak dosyayı belirtir. Açıklaması şöyle. Dosya isminde ":" karakteri varsa uzak bilgisayar gibi algılanır. Bunu engellemek için --force-local seçeneği kullanılabilir.
-f, --file=ARCHIVE

Use archive file or device ARCHIVE. […]

An archive name that has a colon in it specifies a file or device on a remote machine. The part before the colon is taken as the machine name or IP address, and the part after it as the file or device pathname […]
--force-local seçeneği
Açıklaması şöyle
Archive file is local even if it has a colon.

-g seçeneği
Incremental tar dosyayı yaratmak içindir ancak kullanılması tavsiye edilmiyor.
Örnek
Önce şöyle yaparız.
tar -cg data.inc -f DATE-data.tar /path/to/data
Daha sonra şöyle yaparız.
tar -cg data.inc -f NEWDATE-data.tar /path/to/data
-H seçeneği
tar dosyasındaki timestamp'in saniye yerine nanosaniye olarak saklanmasını sağlar. Şöyle yaparız.
tar cfH archive.tar posix ...
-p seçeneği
 preserve permissions anlamına gelir.


-v seçeneği
Verbose anlamına gelir. Daha detaylı çıktı verir.

-z seçeneği (gzip)
gzip ile sıkıştırır veya gzip ile açar.

2 Ocak 2020 Perşembe

tar komutu

Giriş
Farklı tar araçları, farklı seçenekler sunabiliyor.

stdin'den okumak
Komutun sonuna "-" karakterini koyarız.

Örnek
Şöyle yaparız. wget -O 'dan sonra gelen "-" karakteri ile stdout'a yazar. tar' da "-" karakter ile stdin'den okur
wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -
stdout'a yazmak
Komutun sonuna "-" karakterini koyarız.
Örnek
Şöyle yaparız. Sıkıştırılan dosya stdout'a yazılır. Karşı makineye gönderilir ve stdin'inden okunarak açılır.
$ tar -zcf - -C /path/to/files . | ssh user@host "tar -zx - -C /path/to/destination"
--absolute-names seçeneği
Açıklaması şöyle.
By default, GNU tar drops a leading / on input or output, and complains about file names containing a .. component. There is an option that turns off this behavior:
--absolute-names
-P
Do not strip leading slashes from file names, and permit file names containing a .. file name component.
-b seçeneği
tar komutu ile Sıkıştırma yazısına taşıdım.

-c seçeneği

tar komutu ile Sıkıştırma yazısına taşıdım.

-C seçeneği
tar komutu ile Sıkıştırma yazısına bakabilirsiniz.

Açıklaması şöyle. Dosya açma için kullanıyorsak açmadan önce change directory yapılacak yeri belirtir.
-C, --directory=DIR
Change to DIR before performing any operations. This option is order-sensitive, i.e. it affects all options that follow.
Örnek
Şöyle yaparız.
tar -xzf file.gz -C /opt/jdk
--concatenate seçeneği
İki tane sıkıştırılmamış tar dosyasını birleştirir. Eğer dosya sıkıştırılmış ise hata verir.
Örnek
Hatayı görmek için şöyle yaparız.
$ tar --concatenate --file=cat.tar.bz2 two.tar.bz2 
tar: Cannot update compressed archives
tar: Error is not recoverable: exiting now
--exclude seçeneği
tar komutu ile Sıkıştırma yazısına taşıdım.

-f seçeneği
Kullanılacak dosya ismini belirtir.

-j seçeneği (bzip)
bzip dosyası ile çalışılacağını belirtir. bzip dosyasını açmak için şöyle yaparız
tar xjf file.tar.bz2
-H seçeneği
tar komutu ile Sıkıştırma yazısına taşıdım.

-ignore-zeros seçeneği
Bazen tar dosyalarında EOF yani tar'ın bittiğini belirten işaret yanlış yerde oluyor. Bunu aşmak için şöyle yaparız.
## Show contents of `combined.tar.bz2', bypassing the bad format
$ tar tif combined.tar.bz2
a
b
c
--lzip seçeneği (lzip)
lzip dosyalarını işlemek içindir. Şöyle yaparız.
tar -cvf --lzip /media/my-usb/result.lz /tmp/source-dir
--no-same-owner seçeneği
tar içerdiği dosyaların sahipliğini de saklar. tar dosyasını açarken bu bilgilerin kullanılmamasını sağlar.

--no-same-permissions seçeneği
tar içerdiği dosyaların sahipliğini de saklar. tar dosyasını açarken bu bilgilerin kullanılmamasını sağlar.

-p seçeneği
tar komutu ile Sıkıştırma yazısına taşıdım.

-t seçeneği
Tar dosyasının içini görmek için kullanılır.
Örnek
Elimizde şöyle bir tgaz dosyası olsun
- folder
    - subdir1
      - file1.txt
      - file2.text
    - subdir2
      - file1.txt
Şöyle yaparız.
tar -tf folder.tgz
Çıktı olarak şunu alırız
folder/
folder/subdir1/
folder/subdir1/file1.txt
folder/subdir1/file2.txt
folder/subdir2/
folder/subdir2/file1.txt
Örnek
Şöyle yaparız.
## Show contents of `one.tar.bz2'
$ tar tf one.tar.bz2
a
b
Örnek
Dosyadaki grup/kullanıcı bilgisini görmek için şöyle yaparız.
tar tvf thetarball.tgz | awk '{print $2}' | sort -u
-x seçeneği - Extract
Extract anlamına gelir. Açmak için kullanılır.
Örnek
Açıklaması şöyle. Eğer z seçeneğini sağlamazsak tar açma işleminde dosya tipini uzantıya bakarak anlar.
If you leave out -z from options tar will guess archive type by the file .ext:
Şöyle yaparız
tar -xf multiview_action.tgz
Örnek
Şöyle yaparız. zcat komutu parçalanmış dosyaları birleştirir ve açar, daha sonra tar komutuna geçer. tar komutunda -z veya -f seçeneğini kullanmaya gerek yok.
zcat multiview_action.tgz.part-* | tar -x
Örnek
Şöyle yaparız.
tar -xvf file.tar.gz
Örnek
tar içerdiği dosyaların sahipliğini de saklar. Elimizde 502 numaralı kullanıcıya ait bir dosya içeren şöyle bir tar olsun. Bu dosyayı açınca sistemde 502 numaralı kullanıcı yoksa şöyle bir çıktı alırız.
[root@rocks7 common]# ls -l
-rw-r--r-- 1 root root 4779534 May  2  2012 scalapack-2.0.2.tgz
[root@rocks7 common]# tar xf scalapack-2.0.2.tgz
[root@rocks7 common]# 
[root@rocks7 common]# ls -l
total 98576
drwxr-xr-x 10  502 games     4096 May  2  2012 scalapack-2.0.2
-rw-r--r--  1 root root   4779534 May  2  2012 scalapack-2.0.2.tgz
-v seçeneği
Verbose anlamına gelir. Daha detaylı çıktı verir.
Örnek
Açma esnasında dosyaları görmek için şöyle yapılır
tar xzvf file.tar.gz
-z seçeneği (gzip)
gzip ile sıkıştırır veya gzip ile açar.

Örnek
gzip dosyası ile çalışılacağını belirtir. gzip oluşturmak için şöyle yaparız
tar -czf file.tar.gz .
gzip dosyasını açmak için şöyle yaparız
tar -xzf file.tar.gz .