15 команд Tar, которые стоит попробовать в Linux

15 команд Tar, которые стоит попробовать в Linux
⏱️ 1 min read

Иногда вам нужно упаковать несколько файлов и/или каталогов в один файл. Легче передать один файл по сети и даже через USB-накопитель (создание тысяч файлов на флэш-памяти может быть медленным). В таких операционных системах, как Windows, это обычно делается путем архивирования в файлы .zip (архивирование) или .rar. В операционных системах *nix, таких как Linux, основной утилитой является «tar». Название этой команды происходит от Tape ARchive, поскольку изначально она была разработана для резервного копирования данных на магнитную ленту. В настоящее время его все еще можно использовать для этой цели, но в большинстве случаев это просто метод создания так называемых «архивов». Цель архивов — облегчить загрузку, выгрузку и перемещение данных или сохранение резервных копий.

1. Обратитесь к руководству по tar

У каждой команды в Linux есть справочная страница. Вы можете обратиться к руководству по tar, введя это в свой терминал:

man tar

tar-руководство

Перемещайтесь по содержимому с помощью клавиш со стрелками, СТРАНИЦА ВВЕРХ а также ЛИСТАТЬ ВНИЗ. Нажимать д выйти из мануала.

2. Создайте архив каталогов

Создайте каталог с девятью пустыми файлами, чтобы вы могли протестировать команды tar:

mkdir $HOME/test9 && touch $HOME/test9/{1..9}

tar-тест-каталог

Теперь переключитесь в свой домашний каталог.

cd

Чтобы отправить содержимое каталога в файл tar:

tar -cvf test.tar test9
  • c – означает создать
  • v – подробный, выводит какой файл в данный момент добавлен в архив; полезно для длительных заданий, чтобы увидеть прогресс
  • f — указывает утилите создать tar-файл с указанным именем test.tar.

3. Добавьте содержимое в существующий архив

Создайте еще один каталог с пустыми файлами с именами от a до z:

mkdir $HOME/test-az && touch $HOME/test-az/{a..z}

тар-тест-аз

Теперь добавьте его в уже существующий tar-архив (r параметр):

tar -rvf test.tar test-az

Если вы откроете test.tar в графическом менеджере архивов, вы увидите следующее содержимое.

tar-xarchiver

4. Список содержимого файла tar

Использовать -t флаг, чтобы просмотреть содержимое файла tar.

tar -tf test.tar

5. Извлечь содержимое из архива

Содержимое будет извлечено в ваш текущий каталог. Создайте новый каталог, а затем переключитесь на него:

mkdir $HOME/test-extract && cd $HOME/test-extract

Теперь извлеките test.tar в текущий каталог:

tar -xvf $HOME/test.tar

извлеченное из смолы содержимое

6. Создайте сжатый архив (gzip)

Если вы собираетесь передавать tar-файл по сети, рекомендуется уменьшить его размер, чтобы увеличить скорость передачи. Вернитесь в свой домашний каталог.

cd

И создайте сжатый файл tar.

tar -cvzf test.tar.gz test9

Как видите, единственная разница заключается в добавлении z параметр, который указывает tar использовать gzip для сжатия файла.

сравнение размеров tar-файлов

7. Создайте сжатый архив еще меньшего размера (bzip)

Вместо z параметр, вы можете использовать j сжать с помощью bzip.

tar -cvjf test.tar.bz test9

Это еще больше уменьшит размер файла, но сжатие и распаковка займет больше времени.

8. Извлеките один файл или каталог

Просто добавьте точное имя файла или каталога, как оно указано в tar-архиве:

tar -xvf test.tar test9/7

Это извлекает только test9/7 файл.

9. Извлекайте только те файлы/каталоги, которые соответствуют шаблону

Если вы хотите извлечь все файлы с расширением .jpg:

tar -xvf test.tar --wildcards '*.jpg'

10. Сохранить разрешения

Разрешения не важны при создании архивов из документов, изображений и подобных носителей. Но если вы создаете резервную копию своей системы, вы можете добавить p параметр для сохранения прав доступа к файлам:

tar -cvpf test-permissions.tar test9

11. Удалить файлы или каталоги из архива

Работает только с несжатыми файлами tar.

tar -f test.tar --delete test-az

Это удалит каталог test-az из архива, включая содержащиеся в нем файлы. tar f test.tar --delete test-az/z просто удалит файл «test-az/z».

12. Исключить файлы или каталоги из добавления в архив

tar -cvf test-exclude.tar --exclude test9/9 test9

tar-исключить

Как видите, файл 9 был исключен из tar-архива. Можно добавить несколько параметров исключения: tar cvf test-exclude.tar --exclude test9/9 --exclude test9/8 test9.

13. Оставайтесь в одной файловой системе

--one-file-system можно добавить в команду, например tar -cvpzf backup.tar.gz --one-file-system /.

Это создаст резервную копию вашей корневой файловой системы, за исключением других файловых систем, которые вы могли смонтировать в /home, /mnt, /media, /proc и так далее.

14. Сохраняйте расширенные атрибуты

Помимо прав доступа к файлам, некоторые дистрибутивы Linux также имеют расширенные атрибуты файлов. Чтобы сохранить их все, добавьте следующие параметры: --acls --selinux --xattrs.

Пример команды:

tar -cvpzf backup.tar.gz --one-file-system --acls --selinux --xattrs /

15. Создайте новый каталог для извлеченных файлов

Обычно tar извлекается в ваш текущий каталог. Вы можете mkdir new_directory а также cd new_directory перед использованием tar, если каталог, в который вы хотите извлечь, еще не существует. Но поручить tar сделать все за вас более элегантно:

tar -xvf test.tar --one-top-level=new_directory

Вывод

Это наиболее часто используемые команды tar. Но утилита универсальна и может использоваться многими другими способами. Если вам не нравится читать руководства в терминале, вы можете найти HTML-версия руководства по tar легче просматривать.

Join our Newsletter and receive offers and updates! ✅

0 0 голоса
Article Rating
Аватар Routech

Routech

Routech is a website that provides technology news, reviews and tips. It covers a wide range of topics including smartphones, laptops, tablets, gaming, gadgets, software, internet and more. The website is updated daily with new articles and videos, and also has a forum where users can discuss technology-related topics.

Подписаться
Уведомить о
guest
0 Comments
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x