Tar effettivamente comprime i file o li raggruppa insieme?

Di solito pensavo che tar fosse unutilità di compressione, ma non sono sicuro, comprime effettivamente i file? o è proprio come un file ISO, un file per contenere file?

Commenti

Answer

Tar è uno strumento di archiviazione (Tape ARchive), raccoglie solo i file e i relativi metadati insieme e produce un file. Se vuoi comprimere quel file in un secondo momento puoi usare gzip / bzip2 / xz. Per comodità, tar fornisce gli argomenti per comprimere automaticamente larchivio. Controlla la pagina man di tar per maggiori dettagli.

Commenti

  • Un leggero chiarimento sulla risposta. È GNU tar che fornisce questi argomenti di compressione extra. Ad esempio, Solaris tar non fornisce argomenti per la compressione.
  • oooh, questo ' è il motivo per cui continuo a vedere thing.tar.7z
  • BSD tar fornisce anche un argomento per la compressione, sebbene accetti solo z e determina il metodo di compressione in base allestensione, mentre GNU tar ha zZjJ argomenti per i diversi metodi di compressione.
  • Basta leggere la pagina man di BSD tar e si scopre che mi sbagliavo, tar BSD utilizza zZjJ per la compressione proprio come GNU tar. Tuttavia, rileva automaticamente la compressione durante la decompressione, mentre GNU tar si aspetta zZjJ anche.
  • @wingedsubmariner: no; le versioni moderne di GNU tar si decomprimono automaticamente senza richiedere le opzioni -zZjJ.

Risposta

tar produce archivi; la compressione è una funzionalità separata. Tuttavia tar da solo può ridurre lutilizzo dello spazio se utilizzato su un gran numero di piccoli file che sono più piccoli della dimensione del cluster del filesystem. Se un filesystem usa 1kb cluster, anche un file che contiene un singolo byte consumerà 1 kb (più un inode). Un archivio tar non ha questo overhead.

BTW, un ISO file non è realmente “un file per contenere file” – è in realtà unimmagine di un intero filesystem (uno originariamente progettato per essere utilizzato su CD) e quindi la sua struttura è considerevolmente più complessa.

Commenti

  • In realtà un file vuoto non consumerà 1kb. Un file di 1-1023 byte.
  • @psusi quindi per un file di byte 1-1023 consumerà sempre 1024, il che si traduce in uno spreco di 1023-1 byte.

Risposta

Il comando tar di UNIX originale non comprimeva gli archivi. Come menzionato in un commento, Solaris tar non si comprime. Né HP-UX, né AIX, FWIW. Per convenzione, gli archivi non compressi terminano con .tar.

Con GNU / Linux ottieni GNU tar (puoi installare GNU tar su altri sistemi UNIX.) Di default non si comprime; tuttavia, fa comprimere larchivio risultante con gzip (anche da GNU) se fornisci -z. Il suffisso convenzionale per i file compressi con gzip è .gz, quindi vedrai spesso tarball (slang per tar archivio, che di solito implica che “è stato compresso) che termina con .tar.gz. Quella fine implica che è stato eseguito tar, seguito da gzip, ad esempio tar cf - .|gzip -9v > archive.tar.gz . Troverai anche archivi che terminano con .tgz, ad es. tar czf archive.tgz ..

Modifica: www.linfo.org/tar.html mi ha ricordato che GNU tar supporta molte più funzionalità della semplice compressione con gzip, e mi ha ricordato che i suffissi sono più che semplici convenzioni. Hanno una semantica incorporata. Supporta anche bzip2 (-j per .bz2) e la vecchia compressione (-Z per .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 di tar di Linux, GNU produce pagine di informazioni, non pagine di manuale, quindi per imparare tutto su tar di GNU, eseguire info tar.

Commenti

  • Il tar GNU non ' gestisce le compressioni da solo, si limita a eseguire il pipe verso / da gzip, bzip2, compress e altri.
  • Ho esaminato la fonte . Tar GNU gestisce la compressione! Limplementazione si avvale del riutilizzo del codice e dei solidi principi architetturali dello spazio utente UNIX. " Just pipe " sottostima il modo in cui la compressione è strettamente integrata nello strumento.Il fatto che accada a fork di programmi di supporto è un tecnicismo. Se vuoi difendere " solo pipe, " quindi cita nomi di file e numeri di riga e lascia ' s vede da che parte sta la comunità.
  • Ci vogliono alcuni giorni prima che io possa controllare quella fonte.

Risposta

lutilità tar non si comprime finché non si fornisce un argomento per farlo [tar -z nome file].

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *