Lathund för terminalkommandon i linux/tar

Från Wikibooks

tar ("tape archive") är det mest använda kommandot för att skapa filarkiv i Unix och Linux, motsvarande pkzip i Windows. Programmet själv komprimerar inte filerna, utan detta görs med andra program, ofta angivna i samma kommando. Det finns tre huvudsakliga varianter med olika syntax, exemplen här fungerar alla i GNU tar, den version som är vanlig på Linux-system.

Tar-arkiv har vanligen någon av extensionerna .tar, .tgz, .tbz2 eller .tbz. De senare är komprimerade med gzip respektive bzip2.

Användning[redigera]

tar -cf arkiv.tar katalog

Skapar arkiv "arkiv.tar" med innehållet från katalogen "katalog".

tar -tf arkiv.tar

Listar filerna i arkiv.tar

tar -xf arkiv.tar

Kopierar filerna eller filträdet från arkivet. Vanligen skapas en katalog som innehåller filerna från arkivet, men det är möjligt att ange "farliga" filnamn då man skapar arkivet, så god praxis är att kontrollera filnamnen, om möjligt se till att tar vägrar skriva över filer på olämpligt sätt eller på annat sätt skydda sig. GNU tar tolkar filnamnen som relativa också om de anges absolut, vilket skyddar i viss mån.

tar -tf arkiv.tar | less

Lista filerna med programmet less, som låter en röra sig upp och ner i listan.

tar --keep-old-files -xf arkiv.tar

Kopierar filerna, hindrar GNU tar från att skriva över existerande filer.

tar -c katalog | bzip2 > arkiv.tar.bz2
tar -cf - katalog | bzip2 > arkiv.tar.bz2
tar -cjf arkiv.tar.bz2 katalog

Skapar ett arkiv med filträdet i "katalog" och komprimerar arkivet med bzip2. Den första kommandoraden fungerar allmänt (förutsatt att bzip2 är installerat). Notera att arkivet skrivs till STDOUT då "-f filnamn" inte angetts. Den andra är motsvarande med GNU tar, där destinationen angivits explicit. Den tredje är det vanliga skrivsättet med GNU tar.

tar -c katalog | gzip > arkiv.tar.gz
tar -czf arkiv.tar.gz

Skapar komprimerat arkiv som ovan, men med gzip.

gunzip arkiv.tgz | tar -t | less
tar -tzf arkiv.tgz | less

Visar innehållet i det gzip-komprimerade arkivet.

gzip har nackdelen att skadade arkiv normalt inte går att läsa efter det skadade stället, men är äldre och standard och används därför oftare för fildelning. I det sammanhanget vill man ändå inte använda skadade arkiv. För säkerhetskopiering används ofta bzip2, där en skada bara gör en del av arkivet oläsligt, eller okomprimerade arkiv. Tar slösar en hel del utrymme per fil, men detta är oväsentligt om katalogerna man skall kopiera innehåller stora filer, såsom foton, ljud och video, som i sig i allmänhet är komprimerade.

man tar

Manualsidan. Ger ett sammandrag av hur tar fungerar.

info tar

Infosidorna för tar. Den fullständiga manualen för GNU tar, förutsatt att info och infosidorna är installerade.

Tar i sig skriver filerna efter varandra i arkivet, med en del metadata före varje fil och mellanrum mellan filerna. Om arkivet består av textfiler går det alltså filerna att läsa med less eller en textredigerare. Man bör dock vara försiktig, då en binärfil kan ställa till det i ett terminalfönster om programmet inte klarar att hantera den.

Det finns ett antal olika tar-format, som kan vara inkompatibla. GNU tar är dock den dominerande och klarar de flesta av formaten. GNU tar har också ett otal direktiv med vilka man kan styra hur användarnamn, datumstämplar, ointressanta underkataloger, säkerhetskopior etc. hanteras.

Liknande kommandon[redigera]

  • ar är ett program för att skapa arkiv av programbibliotek. Eftersom det är ett standardverktyg har man valt att använda det för .deb-arkiv, formatet för binärpaket i Debian och relaterade Linux-distributioner. Ett deb-arkiv består av ett ar-arkiv innehållande filen debian-binary med metadata, tar-arkivet control.tar.gz med installationsskript och tar-arkivet data.tar.gz med de egentliga filerna.
  • zip (ej att förväxla med gzip) är ett arkivprogram som motsvarar pkzip i DOS och Windows och klarar att hantera pkzip-filer (och tvärtom, med vissa beränsningar).