Malin Freeborn
ba8026e0c3
input examples are now given as ```bash input $ARG1 ``` While outputs use md's '> ' sign as a quote.
80 lines
1.7 KiB
Markdown
80 lines
1.7 KiB
Markdown
---
|
|
title: "Archives"
|
|
tags: [ "Documentation", "tar", "backups" ]
|
|
---
|
|
# `tar`
|
|
|
|
## Create
|
|
|
|
Combine many files and directories into a single t-archive file.
|
|
|
|
```bash
|
|
tar cf "$ARCHIVE".tar $DIR
|
|
```
|
|
You can remember this with the mnemonic '*C*reate *F*ile'.
|
|
|
|
Unfortunately, this stores the full file path, so making a tar archive of `/etc/nginx/` will store `etc/nginx` (without the leading `/`.
|
|
|
|
It's often better to tell tar which path to start from using the `-C` flag.
|
|
|
|
```bash
|
|
tar cf "$ARCHIVE".tar -C /etc/ nginx
|
|
```
|
|
|
|
Check the contents of your archive with:
|
|
|
|
```bash
|
|
tar tf "$ARCHIVE".tar
|
|
```
|
|
|
|
If you want to store 'everything in a directory', then using `*` will not work, because it will target everything in the *current* directory.
|
|
|
|
Instead, you can store the target in a variable:
|
|
|
|
```bash
|
|
files=$(ls /etc/nginx)
|
|
tar cf "$ARCHIVE".tar -C /etc/nginx/ $file
|
|
```
|
|
|
|
## Extract
|
|
|
|
Extract the tar archive with
|
|
|
|
> tar xf "$ARCHIVE".tar
|
|
|
|
You can remember this with the mnemonic 'e*X*tract *F*ile'.
|
|
|
|
## Compress
|
|
|
|
Create a zip-compressed archive with the `z` flag.
|
|
|
|
```bash
|
|
tar czf "$ARCHIVE".tgz -C /etc/nginx/ $file
|
|
```
|
|
|
|
You can use any file ending you want, but sane people like to use '.tgz' or '.tar.tgz'.
|
|
|
|
# 7zip
|
|
|
|
(also called 'p7zip' or '7z')
|
|
|
|
Make archive:
|
|
|
|
```bash
|
|
PASSWORD=my_password
|
|
```
|
|
```bash
|
|
7za a -tzip -p$PASSWORD -mem=AES256 $ARCHIVE.zip $FILE_1 $FILE_2
|
|
```
|
|
Note that people can still see every filename in your archive, and can change those files.
|
|
They just can't read the contents.
|
|
|
|
Unzip:
|
|
|
|
```bash
|
|
7za x archive.zip
|
|
```
|
|
|
|
7zip will open anything: zip-files, rar-files, a tin of beans, *anything*.
|
|
However, the extracted tgz files will just be tar files, so you will still need to use tar to extract them (see above).
|