tar-grunder: skapa, förstå och verifiera arkiv
tar är den klassiska startpunkten på Linux när du vill flytta, kopiera eller backa upp data. Men de flesta lär sig det som “en rad man råkar ha i anteckningarna”. Det här är grunderna: de enkla, bärande delarna som allt annat bygger på. Skriven version av tar-basisserien — vad kommandona gör, varför, och hur du bevisar att resultatet faktiskt funkar.
En fil in, en fil ut
Det enklaste tar kan göra, bevisat från början till slut: en fil in i ett arkiv, samma fil ut igen — en hel round-trip.
mkdir -p /tmp/pilot && echo 'hello world' > /tmp/pilot/notes.txt
tar -czf /tmp/pilot/notes.tar.gz -C /tmp/pilot notes.txt
mkdir -p /tmp/pilot/restored
tar -xzf /tmp/pilot/notes.tar.gz -C /tmp/pilot/restored
cat /tmp/pilot/restored/notes.txt # -> hello world
Att packa upp i en separat mapp är hela poängen: arkivet håller en kopia, så att packa upp på annat håll och få tillbaka filen bevisar att round-tripen verkligen funkar.
-C-flaggan förtjänar krediten: den byter katalog först, så arkivet
lagrar notes.txt — inte ett kluster av nästlade sökvägar som du måste
kravla dig igenom vid återställning.
Flaggorna, tydda
Sluta memorera rader utantill. Varje bokstav är ett jobb:
-c— skapa ett arkiv-x— packa upp filer-f— filen (sökvägen) att läsa eller skriva-t— lista innehållet utan att packa upp-v— verbose: nämn varje fil medan den hanteras-z— gzip-komprimering (ett separat lager ovanpå)
Ett litet arkiv att titta i:
mkdir -p /tmp/pilot2 && echo data > /tmp/pilot2/a.txt
tar -czf /tmp/pilot2/out.tar.gz -C /tmp/pilot2 a.txt
tar -tf /tmp/pilot2/out.tar.gz # lista innehåll
gzip -t /tmp/pilot2/out.tar.gz && echo OK # komprimeringsströmmen OK
tar -tzvf /tmp/pilot2/out.tar.gz # utförlig lista
-t listar utan att röra filsystemet; gzip -t kontrollerar
komprimeringslagret, som är separat från tars eget format. -v gör varje
lista till per-fil-detalj.
En säkerhetskopia du kan bevisa
En säkerhetskopia du inte testat är ingen säkerhetskopia. Arkivera ett projekt, hoppa medvetet över en skräp-cachemapp, återställ på annat håll, och bevisa sedan att återställningen matchar originalet:
mkdir -p /tmp/project/{src,cache} && echo code > /tmp/project/src/app.py
echo junk > /tmp/project/cache/tmp.bin
tar -czf /tmp/project-backup.tar.gz --exclude=cache -C /tmp/project .
mkdir -p /tmp/restored-project
tar -xzf /tmp/project-backup.tar.gz -C /tmp/restored-project
diff -r /tmp/project/src /tmp/restored-project/src && echo RESTORE-OK
--exclude=cache lämnar skräpet utanför arkivet; diff -r är det riktiga
testet. Identisk in i minsta byte — eller så funkade det inte.
Regeln bakom videorna
Varje kommando i tar-serien kördes på riktigt, i en slasklåda, innan det kom in i en video. Allt som lär ut trasiga kommandon förstör förtroendet direkt. Innan du litar på något av detta ur minnet: kör det en gång själv och se att det gör vad du förväntar dig.
Se videorna:
- Del 1 — skapa och packa upp: Så skapar och packar du upp ett tar-arkiv (.tar.gz)
- Del 2 — flaggorna: Vad tar-flaggorna faktiskt betyder (c x f t v z)
- Del 3 — backup + verifiering: Säkerhetskopiera en mapp med tar och bevisa att återställningen är identisk