Di solito supponevo che tar
fosse un'utilità di compressione, ma non sono sicuro, in realtà comprime i file o è proprio come un file ISO, un file per contenere i file?
Di solito supponevo che tar
fosse un'utilità di compressione, ma non sono sicuro, in realtà comprime i file o è proprio come un file ISO, un file per contenere i file?
Risposte:
Tar è uno strumento di archiviazione (Tape ARchive), raccoglie solo i file e i loro metadati insieme e produce un solo file. Se vuoi comprimere quel file in un secondo momento puoi usare gzip / bzip2 / xz. Per comodità, tar fornisce argomenti per comprimere automaticamente l'archivio. Controlla la pagina man tar per maggiori dettagli.
thing.tar.7z
z
e determini solo il metodo di compressione basato sull'estensione, mentre il tar GNU ha zZjJ
argomenti separati per i diversi metodi di compressione.
zZjJ
per la compressione proprio come il tar GNU. Tuttavia, rileva automaticamente la compressione durante la decompressione, mentre GN Tar si aspetta zZjJ
anche allora.
tar
decomprimono automaticamente senza richiedere le -zZjJ
opzioni.
tar
produce archivi; la compressione è una funzionalità separata. Tuttavia, da tar
solo può ridurre l'utilizzo dello spazio se utilizzato su un numero elevato di file di dimensioni inferiori alle dimensioni del cluster del file system. Se un filesystem utilizza cluster da 1kb, anche un file che contiene un singolo byte consumerà 1kb (più un inode). Un tar
archivio non ha questo sovraccarico.
A proposito, un file ISO non è in realtà "un file per contenere i file" - è in realtà un'immagine di un intero file system (uno originariamente progettato per essere utilizzato su CD) e quindi la sua struttura è notevolmente più complessa.
Il comando tar UNIX originale non ha compresso gli archivi. Come menzionato in un commento, il catrame di Solaris non si comprime. Né HP-UX, né AIX, FWIW. Per convenzione, gli archivi non compressi finiscono .tar
.
Con GNU / Linux ottieni tar GNU. (È possibile installare tar GNU su altri sistemi UNIX.) Di default non si comprime; tuttavia, non comprimere l'archivio creato con gzip (anche da GNU) se si fornisce -z
. Il suffisso convenzionale per i file gzip è .gz
, quindi vedrai spesso tarball (gergo per un archivio tar, che di solito implica che è stato compresso) che finiscono .tar.gz
. Quel finale implica che è stato eseguito tar, seguito da gzip, ad es tar cf - .|gzip -9v > archive.tar.gz
. Troverai anche archivi che finiscono .tgz
, ad es tar czf archive.tgz .
.
Modifica: www.linfo.org/tar.html mi ha ricordato che GNU tar supporta molte più funzionalità rispetto alla semplice compressione con gzip e mi ha ricordato che i suffissi sono più che semplici convenzioni. Hanno una semantica integrata. Supporta anche bzip2 ( -j
for .bz2
) e vecchio compress ( -Z
for .Z
). Poi ho guardato la pagina man e mi è stato ricordato che -a
mappa automaticamente il metodo di compressione desiderato in base al suffisso.
Un altro nit. Come dice la pagina man tar di Linux, GNU produce pagine informative, non pagine man, quindi per imparare tutto su GNU tar, esegui info tar
.