Jeg antog normalt, at tar
var et komprimeringsværktøj, men jeg er usikker på, komprimerer den faktisk filer, eller er det ligesom en ISO-fil, en fil der skal indeholde filer?
Kommentarer
- Også på SuperUser .
Svar
Tar er et arkiveringsværktøj (Tape ARchive), det samler kun filer og deres metadata sammen og producerer en fil. Hvis du vil komprimere den fil senere, kan du bruge gzip / bzip2 / xz. For nemheds skyld giver tar argumenter til automatisk at komprimere arkivet til dig. Tjek tar man page for flere detaljer.
Kommentarer
- En lille smule afklaring på svaret. Det er GNU-tjære, der giver disse ekstra komprimeringsargumenter. For eksempel giver Solaris tar ikke argumenter for komprimering.
- oooh, at ' hvorfor jeg fortsat ser
thing.tar.7z
- BSD-tjære giver også et argument for komprimering, selvom det kun accepterer
z
og bestemmer komprimeringsmetoden baseret på udvidelsen, mens GNU-tjære har separatzZjJ
argumenter for de forskellige komprimeringsmetoder. - Bare læs BSD-tjæresiden, og det viser sig, at jeg tog fejl, BSD-tjære bruger separat
zZjJ
til komprimering ligesom GNU-tjære. Det registrerer dog automatisk komprimering ved dekomprimering, mens GNU tar forventerzZjJ
så også. - @wingedsubmariner: nej; moderne versioner af GNU
tar
dekomprimerer automatisk uden at kræve-zZjJ
mulighederne.
Svar
tar
producerer arkiver; komprimering er en separat funktionalitet. Dog tar
alene kan reducere pladsforbruget, når det bruges på et stort antal små filer, der er mindre end filsystemets klyngestørrelse. Hvis et filsystem bruger 1 kb klynger, selv en fil, der indeholder en enkelt byte, bruger 1 kb (plus en inode). Et tar
arkiv har ikke denne overhead.
BTW, en ISO filen er egentlig ikke “en fil til at indeholde filer” – den er faktisk et billede af et helt filsystem (et oprindeligt designet til at blive brugt på cder), og dets struktur er således betydeligt mere kompleks.
Kommentarer
- En tom fil bruger faktisk ikke 1 kb. En 1-1023 byte-fil vil.
- @psusi, så for en fil med byte 1-1023 forbruges altid 1024, hvilket resulterer i spild på 1023-1 bytes.
Svar
Den oprindelige UNIX-tar-kommando komprimerede ikke arkiver. Som nævnt i en kommentar komprimerer Solaris tar heller ikke. HP-UX eller AIX, FWIW. Efter konvention slutter ikke-komprimerede arkiver med .tar
.
Med GNU / Linux får du GNU-tjære. (Du kan installere GNU-tjære på andre UNIX-systemer.) Som standard komprimerer den ikke; dog -z
. Det konventionelle suffiks for gzippede filer er .gz
, så du vil ofte se tarballs (slang for en tjære arkiv, der normalt antyder, at det er komprimeret, der slutter med .tar.gz
. Denne afslutning indebærer, at tjære blev kørt, efterfulgt af gzip, f.eks. tar cf - .|gzip -9v > archive.tar.gz
. Du finder også arkiver, der slutter med .tgz
, f.eks. tar czf archive.tgz .
.
Rediger: www.linfo.org/tar.html mindede mig om, at GNU-tjære understøtter meget mere funktionalitet end blot at komprimere med gzip, og det mindede mig om, at suffikserne er mere end almindelige konventioner. De har indbygget semantik. Det understøtter også bzip2 (-j
til .bz2
) og gammel komprimering (-Z
til .Z
). Så kiggede jeg på mandsiden og blev mindet om, at -a
kortlægger automatisk din ønskede komprimeringsmetode baseret på suffiks.
En anden nit. Som Linux-tjæremandsiden siger, producerer GNU infosider, ikke mandsider, så kør info tar
for at lære alt om GNU-tjære.
Kommentarer
- GNU-tjære håndterer stadig ikke ' t håndterer komprimeringer i sig selv, den bare rør til / fra gzip, bzip2, komprimering og andre. / li>
- Jeg kiggede på kilden . GNU tjære håndterer kompression! Implementeringen drager fordel af genbrug af kode og sunde UNIX-brugerrums arkitektoniske principper. " Bare rør " underdanner måden, hvorpå kompression er tæt integreret i værktøjet.Det faktum, at det sker med gaffelhjælperprogrammer, er en teknisk egenskab. Hvis du vil forsvare " bare rør, " citer derefter filnavne og linjenumre og lad ' se hvilken side samfundet tager.
- Det tager nogle dage, før jeg kan kontrollere den kilde.
Svar
tar-værktøj komprimerer ikke, før du giver argument for at gøre det [tar -z filnavn].