Как работи програмата tar в Линукс
Програмата tar в Линукс е швейцарското армейско ножче на системния *nix администратор при архивиране и разпространение на файлове. GNU tar архивите могат да съдържат множество файлове и директории, запазвайки разрешенията им, с поддръжка на множество формати за компресия. Името tar (tape archiver) означава архиватор на ленти — форматът е официален стандарт в POSIX съвместими операционни системи (Linux, Unix, macOS).
Основни флагове
c— създава нов архивx— извлича (разархивира) от архивt— показва съдържанието без разархивиранеf— указва файла на архиваv— verbose — показва обработваните файловеp— запазва разрешенията (permissions) на файловетеz— gzip компресия (.tar.gz)j— bzip2 компресия (.tar.bz2)J— xz компресия (.tar.xz)C— указва директорията за разархивиране
Създаване на архив
Синтаксис: tar [флагове] [архив.tar.gz] [директория/файл]
# Създаване на gzip архив
tar pczvf архив.tar.gz /path/to/directory
# Без компресия
tar pcvf архив.tar /path/to/directory
# bzip2 компресия (по-добра, по-бавна)
tar pcjvf архив.tar.bz2 /path/to/directory
# xz компресия (най-добра, най-бавна)
tar pcJvf архив.tar.xz /path/to/directory

Разархивиране
# Разархивиране в текущата директория
tar xzvf архив.tar.gz
# Разархивиране в конкретна директория
tar xzvf архив.tar.gz -C /path/to/destination/
# Разархивиране на bzip2
tar xjvf архив.tar.bz2
# Разархивиране на xz
tar xJvf архив.tar.xz

Преглед на съдържанието без разархивиране
tar tzvf архив.tar.gz
Извличане на конкретен файл от архив
tar xzvf архив.tar.gz path/to/specific/file.txt
Изключване на файлове и директории
# Изключване на директория
tar pczvf архив.tar.gz /var/www/ --exclude=/var/www/cache
# Изключване по шаблон
tar pczvf архив.tar.gz /home/user/ --exclude="*.log" --exclude="*.tmp"
Практически примери за backup
# Архивиране с дата в името
tar pczvf backup-$(date +%Y-%m-%d).tar.gz /var/www/
# Архивиране на MySQL дъмп
mysqldump --all-databases | gzip > db-$(date +%Y-%m-%d).sql.gz
# Архивиране на /etc конфигурации
tar pczvf etc-backup-$(date +%Y-%m-%d).tar.gz /etc/
Заключение
tar е незаменим инструмент за всеки Linux администратор. Комбинацията tar + gzip е най-разпространеният стандарт, но за по-добра компресия при по-бавна скорост може да се използва bzip2 или xz. Запомнете: c = create, x = extract, t = list, f = file — и всичко останало идва естествено с практиката.