Быстрые ссылки
Кратко
tar — главный инструмент для работы с архивами типа TAR.GZ или TGZ, теми самыми “тарболлами”. У него целая куча опций, но на деле мне хватает пары простых параметров, чтобы быстро запаковать или распаковать данные. Делиться — это просто!
GNU tar идет в комплекте почти с любым дистрибутивом Linux и умеет в один шаг создать архив и тут же его сжать средствами gzip или bzip2, поэтому часто у архивов расширения .tar.gz или .tar.bz2.
Как упаковать всю папку или один файл
Эту команду я использую, когда нужно собрать в архив целую папку, отдельный файл или сразу все, что лежит глубже по директориям — tar рекурсивно добавит всё содержимое.
Расшифрую параметры этой команды:
Скажем, у меня в текущей папке есть директория “stuff”, и я хочу сделать из неё архив с именем archive.tar.gz. Вот что я набираю:
Если же хочется запаковать папку по пути /usr/local/something в архив archive.tar.gz, команда будет чуть другой:
Как собрать в архив сразу несколько папок или файлов
Хотя сам я чаще всего работаю с одной папкой, никто не мешает добавить в один архив сразу несколько каталогов и файлов. Просто перечисляйте их через пробел. Например, чтобы запаковать /home/ubuntu/Downloads, /usr/local/stuff и файл /home/ubuntu/Documents/notes.txt, достаточно выполнить:
Добавить можно сколько угодно папок и файлов — ограничений нет!
Как пропустить отдельные папки и файлы
Иногда требуется упаковать почти всё, но некоторые папки или файлы точно не нужны в архиве. Для этого пригодится параметр --exclude — просто добавьте его перед каждым “лишним” объектом.
Например, нужно собрать архив из всей папки /home/ubuntu, но при этом исключить /home/ubuntu/Downloads и /home/ubuntu/.cache. Команда будет примерно такой:
Параметр --exclude очень гибкий: он понимает шаблоны, а не только точные имена. Например, чтобы игнорировать все MP4-файлы в папке, просто используйте подстановочные знаки:
Когда и почему стоит выбрать bzip2 вместо gzip
Хотя gzip считается классикой для .tar.gz-архивов, tar умеет работать и с bzip2 — тогда расширение будет .tar.bz2, .tar.bz или .tbz. Нужно лишь поменять параметр -z (gzip) на -j (bzip2).
gzip быстрее работает, но сильнее “раздувает” архивы. bzip2 чуть замедляет процесс, зато архивы получаются компактнее. Обычно gzip уже стоит в системе, а bzip2 иногда требует доустановки. Но по смыслу это одинаково удобные способы.
Если хочется использовать именно bzip2, допустим, для папки stuff — пишу так:
Если увидите ошибку вроде "bzip2: not found" или "tar: Child returned status 127", значит, в системе не хватает bzip2. Просто установите его через стандартный менеджер пакетов — в Ubuntu 24.04 достаточно выполнить команду:
4 лайфхака — молниеносно создаем файлы в терминале Linux
Создавать документы — легко и приятно!
Как вытащить все из tar-архива
Чтобы распаковать архив, просто пользуюсь tar. Например, вот так одной командой все файлы из archive.tar.gz окажутся в текущей папке.
Ключ -x значит “извлечь” (от слова extract), он заменяет -c из команд на создание архива.
Если нужно развернуть архив сразу в определенную папку, просто добавьте флаг -C и укажите, куда всё распаковать. Например, чтобы все данные попали в /tmp:
А если архив сжат через bzip2, заменяйте букву “z” в команде на “j”.
Это только самая простая схема работы с tar. На самом деле у него десятки тонких настроек. Изучайте больше — помогу команда info tar в терминале (выход — клавиша q), либо читайте онлайн-мануалы.
Есть и более привычные варианты: современные архиваторы или файловые менеджеры Linux легко “понимают” tar. А для Windows есть 7-Zip, PeaZip и другие бесплатные программы.
Команды Linux
Файлы
tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm · scp · gzip · chattr · cut · find · umask · wc · tr
Процессы
alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg · pidof · nohup · pmap
Сетевые инструменты
netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld
Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!
Премиум подписка - это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь
Также подписывайтесь на нас в:
- Telegram: https://t.me/gergenshin
- Youtube: https://www.youtube.com/@gergenshin
- Яндекс Дзен: https://dzen.ru/gergen
- Официальный сайт: https://www-genshin.ru