Команда 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
Объяснение команды 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 в этом руководстве.

Теперь хотелось бы услышать ваши мысли.

Было ли это руководство полезно для вас?

Или, может быть, у вас есть вопросы.

Разве я не включил в это руководство какую-либо команду?

Оставьте комментарий ниже.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован.