Команда Tar в Linux с примерами
Сегодня вы узнаете, как архивировать файлы и каталоги в Linux с помощью команды tar.
tar
это самый популярный инструмент архивирования среди других подобных инструментов, используемых для архивирования файлов и каталогов, а также имеет возможность сжимать их с помощью Gzip
а также Bzip2
инструменты для сжатия.
Если вы регулярно читаете этот блог, то, должно быть, заметили, что я обязательно говорю вам, что каждая команда Linux была производным от какого общего слова.
В tar
срок взят из Ленточный архив и также известен как Tarball.
Обычно tar используется для резервного копирования. Он хранит один или несколько файлов / каталогов в одном файле, который также называется архивом.
Потому что он хранит ваши данные в архивном файле, что упрощает перенос данных с одного компьютера на другой.
У нас есть несколько инструментов в Linux, с помощью которых вы можете сжимать такие файлы, как gzip
, bzip2
, zip
но мы не можем сжать каталог и его содержимое с помощью любого из этих инструментов.
Предлагаемое чтение:
Если вы хотите сжать каталог, вы должны использовать tar
команда.
Особенности инструмента архивирования Tar:
- Создать архивный файл
- Извлечь архивный файл
- Список содержимого, присутствующего в архиве
- Добавить файл или каталог в существующий архив
- Удалить файл или каталог из архива
- Объедините несколько архивных файлов
- Сжимайте архивные файлы с помощью инструментов сжатия, таких как gzip и bzip2
- Проверить архивный файл
Прежде всего, давайте сосредоточимся на некоторых из наиболее важных опций, которые мы можем использовать с tar
команда.
Параметры | Объяснение |
---|---|
-c, —create | Создайте новый архив. |
-x, —extract, —get | Извлечь файлы / каталоги из архива. |
-t, —list | Список содержимого архива. |
-A, —catenate, —concatenate | Добавить архив в конец другого архива. |
-C —directory = DIR | Извлечь содержимое (файлы / каталоги) в определенный каталог |
—удалять | Удалить из архива. |
-r, —append | Добавлять файлы в конец архива. |
-z, —gzip | Фильтруйте архив через gzip. |
-j, —bzip2 | Фильтруйте архив через bzip2. |
— карты | Используйте подстановочные знаки с командой tar |
-v, —verbose | Подробный список обработанных файлов. |
-?, —помощь | Справка / доступ к странице руководства |
—версия | Показать версию tar Command. |
Вы должны следовать синтаксису, приведенному ниже, чтобы использовать tar
команда.
tar [OPTION...] [FILE]...
1. Создайте новый tar-архив
Чтобы создать простой tar-архив, введите следующую команду.
В этом примере я архивирую каталог с именем данные/ который содержит эти файлы: file1.txt, file2.txt, file3.txt, file4.txt, file5.txt.
~]# tree data
data
├── file1.txt
├── file2.txt
├── file3.txt
├── file4.txt
└── file5.txt
и выходной файл, который будет создан после архивирования, называется data.tar
~$ tar -cvf data.tar data/
data/
data/file2.txt
data/file3.txt
data/file5.txt
data/file1.txt
data/file4.txt
Расширение tar
архивный файл .tar
~$ ls
data data.tar

2. Извлечь содержимое из архива.
Вы можете использовать следующую команду для извлечения существующего файла архива tar.
В этом примере я извлекаю архив с именем data.tar.
~$ tar -xvf data.tar
data/
data/file2.txt
data/file3.txt
data/file5.txt
data/file1.txt
data/file4.txt
3. Перечислить содержимое архива.
Чтобы отобразить или перечислить содержимое (файлы / каталоги) внутри архива, вы можете использовать следующую команду.
~$ tar -tvf data.tar
drwxr-xr-x ubuntu/ubuntu 0 2020-07-10 03:11 data/
-rw-r--r-- ubuntu/ubuntu 0 2020-07-10 03:11 data/file2.txt
-rw-r--r-- ubuntu/ubuntu 0 2020-07-10 03:11 data/file3.txt
-rw-r--r-- ubuntu/ubuntu 0 2020-07-10 03:11 data/file5.txt
-rw-r--r-- ubuntu/ubuntu 0 2020-07-10 03:11 data/file1.txt
-rw-r--r-- ubuntu/ubuntu 0 2020-07-10 03:11 data/file4.txt
4. Создайте tar-архив со сжатием gzip (tar.gz / tgz)
Как я упоминал в начале этой статьи, мы можем сжать tar
архив с помощью gzip
а также bzip2
инструменты.
Расширение gzip
сжатый tar
архивный файл .tar.gz или тгз.
Введите следующую команду, чтобы создать сжатый tar
архив из gzip
. В -z
опция используется для сжатия tar-архива с помощью gzip
.
~/data$ tar -czvf data.tar.gz data/
Или вы также можете использовать следующую команду.
~/data$ tar -czvf data.tgz data/
Выход:
data/
data/file2.txt
data/file3.txt
data/file5.txt
data/file1.txt
data/file4.txt
5. Создайте tar-архив со сжатием bzip2 (tar.bz2 / .tbz / tar.tb2 / tar.tbz)
Расширение bzip2
сжатый tar
архивный файл .tar.bz2 или .tbz или tar.tb2 или tar.tbz.
Введите любую из следующих команд, чтобы создать сжатый tar
архив из bzip2
. В -j
опция используется для сжатия tar-архива с помощью bzip2
.
~$ tar -cjvf data.tar.bz2 data/
ИЛИ
~$ tar -cjvf data.tar.tb2 data/
ИЛИ
~$ tar -cjvf data.tar.tbz data/
ИЛИ
~$ tar -cjvf data.tbz data/
Выход:
data/
data/file2.txt
data/file3.txt
data/file5.txt
data/file1.txt
data/file4.txt
6. Извлеките содержимое из сжатого (tar.gz / tar.bz2) архива.
Является ли архив Tar gzip
сжатый или bzip2
сжатые, мы должны использовать те же параметры с tar
команда для извлечения / распаковки, и это -xvf
.
Возьмем несколько примеров:
Извлечь файл архива tar.gz:
Введите следующую команду для извлечения / распаковки tar.gz
архивный файл.
~$ tar -xvf data.tar.gz
data/
data/file3.txt
data/file4.txt
data/file1.txt
data/file5.txt
data/file2.txt
Распаковать файл архива tar.bz2:
Введите следующую команду для извлечения / распаковки tar.bz2
архивный файл.
~$ tar -xvf data.tar.bz2
data/
data/file3.txt
data/file4.txt
data/file1.txt
data/file5.txt
data/file2.txt
7. Извлечь содержимое в указанный каталог.
Как известно, по умолчанию tar
извлекает содержимое текущего рабочего каталога.
Но если вы хотите извлечь свое содержимое в указанный каталог, это возможно. Возьмем несколько примеров.
Распакуйте стандартный tar-архив в указанный каталог:
Следующая команда извлечет data.tar(Стандартный архив Tar) в mydata / files / каталог.
~$ tar -xvf data.tar -C mydata/files/
data/
data/file3.txt
data/file4.txt
data/file1.txt
data/file5.txt
data/file2.txt
Распакуйте архив tar.gz в указанный каталог:
Следующая команда извлечет data.tar.gz(сжатый архив tar с помощью gzip) в mydata / files / каталог.
~$ tar -xvf data.tar.gz -C mydata/files/
data/
data/file3.txt
data/file4.txt
data/file1.txt
data/file5.txt
data/file2.txt
Распакуйте архив tar.bz2 в указанный каталог:
Следующая команда извлечет data.tar.bz2(сжатый tar-архив bzip2) в mydata / files / каталог.
~$ tar -xvf data.tar.bz2 -C mydata/files/
data/
data/file3.txt
data/file4.txt
data/file1.txt
data/file5.txt
data/file2.txt
8. Перечислите содержимое архивов tar.gz и tar.bz2.
Содержимое сжатого tar-архива можно легко перечислить. Возьмем пример каждого.
Введите следующую команду, чтобы вывести список содержимого tar.gz
архив. В этом примере я перечисляю содержимое data.tar.gz
~$ tar -tvf data.tar.gz
drwxr-xr-x helpdesk/helpdesk 0 2021-01-26 06:25 data/
-rw-r--r-- helpdesk/helpdesk 0 2021-01-26 06:25 data/file3.txt
-rw-r--r-- helpdesk/helpdesk 0 2021-01-26 06:25 data/file4.txt
-rw-r--r-- helpdesk/helpdesk 0 2021-01-26 06:25 data/file1.txt
-rw-r--r-- helpdesk/helpdesk 0 2021-01-26 06:25 data/file5.txt
-rw-r--r-- helpdesk/helpdesk 0 2021-01-26 06:25 data/file2.txt
Введите следующую команду, чтобы вывести список содержимого tar.bz2
архив. В этом примере я перечисляю содержимое data.tar.bz2
~$ tar -tvf data.tar.bz2
drwxr-xr-x helpdesk/helpdesk 0 2021-01-26 06:25 data/
-rw-r--r-- helpdesk/helpdesk 0 2021-01-26 06:25 data/file3.txt
-rw-r--r-- helpdesk/helpdesk 0 2021-01-26 06:25 data/file4.txt
-rw-r--r-- helpdesk/helpdesk 0 2021-01-26 06:25 data/file1.txt
-rw-r--r-- helpdesk/helpdesk 0 2021-01-26 06:25 data/file5.txt
-rw-r--r-- helpdesk/helpdesk 0 2021-01-26 06:25 data/file2.txt
9. Добавить (добавить) содержимое (файл / каталог) к существующему архиву Tar.
Вы всегда можете добавить файлы / каталоги в существующий tar
архив. для этого используйте следующую команду.
В этом примере я добавляю файл с именем myfile.txt к data.tar
~$ tar -rvf data.tar myfile.txt
Добавление каталога с именем мои данные/ к data.tar
~$ tar -rvf data.tar mydata/
Примечание: Вы не можете добавлять / обновлять содержимое существующего сжатого tar-архива (tar.gz / tar.bz2).
Я получил эту ошибку, когда добавил файл в сжатый tar
архив
~$ tar -rvf data.tar.gz myfile.txt
tar: Cannot update compressed archives
tar: Error is not recoverable: exiting now
10. Удалите содержимое (файл / каталог) из существующего архива Tar.
Вы также можете удалить / удалить файлы / каталоги из существующего tar
архив. для этого выполните следующие команды.
Удаление файла с именем myfile.txt из data.tar
~$ tar --delete -f data.tar myfile.txt
Удаление каталога с именем мои данные/ из data.tar
~$ tar --delete -f data.tar mydata/
Примечание: Вы не можете удалить содержимое существующего сжатого tar-архива (tar.gz / tar.bz2).
11. Извлечение определенного содержимого (файла / каталога) из архива Tar
Вы можете использовать следующие команды для извлечения определенного файла / каталога из стандартного или сжатого tar-архива. Возьмем пример каждого.
Извлечь файл или каталог из стандартного tar-архива
Следующая команда извлечет два файла с именем file2.txt а также file3.txt из data.tar
~$ tar -xvf data.tar data/file2.txt data/file3.txt
Примечание: Всегда помните, что при извлечении определенного файла или каталога из любого tar
архив, укажите его полный путь.
Если вы заметили в приведенном выше примере, я сопоставил весь путь к файлу для извлечения определенных файлов. т.е. оба file2.txt а также file3.txt находятся внутри данные/ каталог, поэтому мне пришлось упомянуть data / file2.txt, data / file3.txt в команде.
Чтобы проверить путь к файлам / каталогам, используйте следующую команду.
~$ tar -tvf data.tar
drwxr-xr-x helpdesk/helpdesk 0 2021-01-27 01:58 data/
-rw-r--r-- helpdesk/helpdesk 0 2021-01-27 01:58 data/file3.txt
-rw-r--r-- helpdesk/helpdesk 0 2021-01-27 01:58 data/file4.txt
-rw-r--r-- helpdesk/helpdesk 0 2021-01-27 01:58 data/file1.txt
-rw-r--r-- helpdesk/helpdesk 0 2021-01-27 01:58 data/file5.txt
-rw-r--r-- helpdesk/helpdesk 0 2021-01-27 01:58 data/file2.txt
В этом примере я извлекаю каталог с именем мои данные/ из data.tar
~$ tar -xvf data.tar mydata/
Вы также должны использовать ту же команду для извлечения определенного содержимого из сжатого архива. Например:
Извлечь файл или каталог из архива tar.gz
~$ tar -xvf data.tar.gz data/file2.txt data/file3.txt
Извлечь файл или каталог из архива tar.bz2
~$ tar -xvf data.tar.bz2 data/file2.txt data/file3.txt
12. Использование подстановочных знаков с командой Tar
Подстановочный знак — это символ или специальный символ, с помощью которого мы можем сопоставить шаблон слова или строки, чтобы получить желаемый результат.
Некоторые популярные символы подстановки: звездочка (*
), Процентов (%
), Скобки ([]
)…так далее.
Теперь посмотрим, насколько хорошо мы можем использовать подстановочные знаки с tar
команда.
Пример # 1
Включите эти файлы в tar
архив с расширением «.текст«
~$ tar -cvf myfiles.tar --wildcards *.txt
Пример # 2
Извлеките все файлы из архива, начинающиеся с «быть«
~$ tar -xvf myfiles.tar --wildcards fi*
13. Проверьте версию команды tar.
Вы можете проверить версию команды tar, используя следующую команду.
~$ tar --version
14. Справка / доступ к странице руководства
Используйте следующие команды для доступа к странице руководства / странице справки команды tar.
~$ man tar
~$ tar --help
Вы можете посетить следующие веб-сайты, чтобы получить дополнительную информацию о команде tar.
Заключение
Надеюсь, вы узнали что-то из этой статьи и, возможно, обнаружили, что tar
это очень важная команда в Linux.
Я изо всех сил старался включить все функции tar
в этом руководстве.
Теперь хотелось бы услышать ваши мысли.
Было ли это руководство полезно для вас?
Или, может быть, у вас есть вопросы.
Разве я не включил в это руководство какую-либо команду?
Оставьте комментарий ниже.