logo

Команда Tar у Linux/Unix із прикладами

Команда tar є скороченням від архів стрічки в Linux. Ця команда використовується для створення архіву та вилучення файлів архіву. в Linux , це одна з важливих команд, які полегшують функції архівування. Ми можемо використовувати цю команду для створення нестиснутих і стиснених архівних файлів, а також змінювати та підтримувати їх.

Tar — це утиліта комп’ютерного програмного забезпечення для збирання кількох файлів в один архівний файл під час обчислення. Його часто називають архівним файлом для резервного копіювання та розповсюдження. Назву отримано від «архіву стрічки», тому що він фактично був розроблений для вказівки даних на послідовних пристроях вводу/виводу без використання жодної з їхніх файлових систем. Групи архівних даних, створені tar, включають багато параметрів файлової системи, наприклад організацію каталогу, дозвіл доступу до файлу, право власності, позначки часу та назву. На користь pax POSIX відмовився від tar, проте tar широко використовується.

Спочатку це було оголошено у версії 7 Unix у січні 1979 року, замінивши програму tp. Для зберігання даних файлова структура була стандартизована в POSIX.1-1988 і пізніше в POSIX.1-2001 і стала шаблоном, який підтримується майже всіма сучасними системами архівування файлів. Unix-подібні операційні системи зазвичай містять інструменти для підтримки файлів tar і утиліти, які використовуються для їх стиснення, наприклад bzip2 і gzip.
Починаючи з оновлення Microsoft від 10 квітня 2018 р., BSD-tar міститься в Microsoft Windows, і існує два або більше сторонніх інструментів для читання та запису цих шаблонів у Windows.

Формати файлів tar

Існує багато доступних форматів файлів tar, включаючи поточні та історичні. У POSIX написані два формати tar: pax і ustar.

Заголовок

Запис заголовка файлу містить метадані файлу. У записі заголовка інформація кодується в стандартах ASCII, щоб забезпечити гнучкість між різними архітектурами з використанням різних порядків байтів. Отже, якщо кожен файл є текстовим файлом ASCII в архіві та містить імена ASCII, архів є текстовим файлом ASCII (має кілька символів NUL).

У наведеній нижче таблиці згадано кілька полів, визначених фактичним форматом Unix tar. Таблиця типів файлів посилань/індикаторів містить кілька сучасних розширень. Поле заповнюється різними байтами NUL, якщо воно не використовується.

Заголовок tar до POSIX.1-1988:

Поле Розмір поля Зсув поля
Ім'я файлу 100 0
Файловий режим 8 100
Числовий ідентифікатор користувача власника 8 108
Числовий ідентифікатор користувача групи 8 116
Розмір файлу в байтах 12 124
Час останньої модифікації у формі числового часу Unix 12 136
Контрольна сума для запису заголовка 8 148
Індикатор посилання 1 156
Ім'я пов'язаного файлу 100 157

Формат Ustart

У форматі Ustar майже кожна сучасна програма tar записує та читає архіви, оголошено стандартом POSIX IEEE P1003.1 від 1988 року. Він представив додаткові поля заголовків. Попередні програми tar уникали додаткової інформації, але нові програми перевіряли наявність рядка 'Ustar', щоб вирішити, чи використовується новий формат.

Поле Розмір поля Зсув поля
Багато полів, як і в попередньому форматі 156 0
Тип прапора 1 156
Аналогічне поле, як і в попередньому форматі 100 157
'ustar' Ustar indicator, then NUL 6 257
'00' Ustar version 2 263
Ім'я користувача власника 32 265
Назва групи власника 32 297
Основний номер пристрою 8 329
Другорядний номер пристрою 8 337
Префікс імені файлу 155 3. 4. 5

POSIX.1-2001/pax

Sun запропонувала техніку додавання розширень до формату tar у 1997 році. Пізніше її було схвалено для стандарту POSIX.1-2001. Формат називається форматом pax або розширеним форматом tar. Деякі теги визначені стандартом POSIX, зокрема mtime, atime, linkpath, gname, uname, sizes, gid, uid, а також визначення набору символів для імен груп/користувачів та імен шляхів.

Ключові реалізації tar

Ключові реалізації згадуються в порядку походження:

    солярис тар поставляється за замовчуванням в ОС Solaris на основі фактичного Unix V7. GNU tar є типовим для майже всіх дистрибутивів Linux. Він заснований на реалізації публічного домену pdtar, який почався в 1987 році. Останні видання можуть використовувати багато форматів, таких як GNU, pax, v7 і ustar. FreeBSD tar став tar за замовчуванням майже в усіх ОС на базі Berkeley Software Distribution, наприклад Mac OS X. Шилий дьоготь є історично важливим, оскільки кілька його розширень були відомими. Вперше він був випущений у квітні 1997 року. Тар-файл Python підтримує два або більше форматів tar, наприклад gnu, pax і ustar; він може читати, але не створювати формати SunOS tar extended і V7; pax — стандартний формат для створення архіву. Він доступний для користувачів з 2003 року.

Крім того, більшість реалізацій cpio та pax можуть створювати та читати два або більше типів файлів tar.

Синтаксис команди tar:

 tar [options] [archive-file] [directory or file to be archived] 

Параметри в команді tar

Нижче наведено різні параметри команди tar:

    -c:Цей параметр використовується для створення архіву.-f:Цей параметр використовується для створення архіву разом із вказаною назвою файлу.-x:Цей параметр використовується для розпакування архівів.-в:Його можна використовувати для додавання архіву до існуючого файлу архіву.-t:Він використовується для відображення або переліку файлів у архіві.-А:Цей параметр використовується для об’єднання архівних файлів.-в:Його можна використовувати для показу докладної інформації.-j:Використовується для фільтрації архівних файлів tar за допомогою tbzip.-З:Це файл zip і повідомляє команду tar, яка створює файл tar за допомогою gzip.-r:Цей параметр використовується для оновлення та додавання каталогу або файлу в існуючий файл .tar.-IN:Цей параметр використовується для перевірки файлу архіву.

Знайомство з архівним файлом

Архівний файл можна визначити як файл, який містить декілька файлів із метаданими. Ці файли використовуються для збору більше ніж одного файлу даних в окремому файлі для полегшення зберігання та переносимості. Його також можна використовувати для стиснення файлів, щоб споживати менше місця для зберігання.

Приклади команди tar

Ось деякі з важливих прикладів, які широко використовуються в команді tar:

1. Створення нестисненого архіву tar з опцією -cvf

Цей параметр робить файл tar відомим як файл.tar . Це архів кожного файлу .txt усередині mydir каталог.

Команда така:

 $ tar cvf file.tar *.txt 

Команда Tar в Linux

2. Розпакування файлів через архів з опцією -xvf

Ця опція може витягувати файли через архіви.

Команда така:

 $ tar xvf file.tar 

Команда Tar в Linux

3. стиснення gzip поверх архіву tar з опцією -z

Цей параметр робить файл tar відомим як файл.tar.gz. Це архів кожного файлу .txt.

Команда така:

 $ tar cvzf file.tar.gz *.txt 

Команда Tar в Linux

4. Розпакуйте архів tar gzip за допомогою параметра -xvzf

Ця опція може розпакувати файли через file.tar.gz архівні файли tar.

Команда така:

 $ tar xvzf file.tar.gz 

Команда Tar в Linux

5. Створення стислих файлів tar за допомогою опції -j

Ця опція допоможе нам створювати та стискати архівні файли. І розпакування, і стиснення займають більше часу порівняно з gzip.

Команда така:

 $ tar cvfj file.tar.tbz hello1.txt 

Команда Tar в Linux

6. Розпакуйте один вказаний каталог або файл у Linux

Цей параметр використовується для розпакування будь-якого файлу в нашому поточному каталозі або всередині вказаного каталогу з параметром -C.

Команда така:

 $ tar -xvf file.tar -C file's path in the directory 

Команда Tar в Linux

Або

 $ tar -xvf file.tar 

Команда Tar в Linux

7. Розпакуйте кілька файлів .tar.tbz, .tar.gz, .tar у Linux

Цей варіант нам допоможе поширення або витягніть більше одного файлу з tar.bz2, tar.gz і файлу архіву tar.

Приклад цього варіанту такий:

 $ tar -jxvf file.tar.tbz 'hello1.txt' 

Команда Tar в Linux

Або

 $ tar -zxvf file.tar.gz 'hello1.txt' 'hello2.txt' 

Команда Tar в Linux

Або

 $ tar -xvf file.tar 'hello1.txt' 'hello2.txt' 

Команда Tar в Linux

8. Перевірте розмір наявного файлу tar.tbz, tar.gz, tar

Команда допоможе нам показати розмір архівного файлу в кілобайтах (КБ), який згаданий вище.

Команда така:

 $ tar -czf - file2.tar.tbz | wc -c 

Або

 $ tar -czf - file1.tar.gz | wc -c 

Або

 $ tar -czf - file.tar | wc -c 

Команда Tar в Linux

9. Оновіть існуючий файл tar

У Linux команда для оновлення існуючого файлу tar така:

npm install команда
 $ tar rvf file.tar *.txt 

10. Список вмісту та опис файлу tar з опцією tf

Ця опція допоможе нам переглянути весь список архівних файлів. Крім того, ми можемо перерахувати певний вміст у будь-якому файлі tar.

Команда така:

 $ tar tf file.tar 

Команда Tar в Linux

11. Перегляньте архів за допомогою параметра -tvf

У Linux ми можемо використовувати параметр -tvf для перегляду архіву.

Команда така:

 $ tar -tvf file.tar 

Команда Tar в Linux

12. Передайте назву файлу як аргумент, щоб знайти файл tar

Ця опція дозволяє переглядати заархівовані файли з інформацією про них.

Команда така:

 $ tar tvf file.tar filename 

Команда Tar в Linux

13. Використання каналу для введення команди grep для пошуку того, що ми шукаємо

Ця опція допоможе нам перерахувати лише згадане зображення чи текст захоплення через архівні файли.

Команда така:

 $ tar tvf file.tar | grep 'filename.file' 

Або

 $ tar tvf file.tar | grep 'text to search' 

Команда Tar в Linux

Вступ до символів підстановки

Крім того, у Linux символи узагальнення називають символом підстановки або символом підстановки. Це символ, який використовується для представлення або заміни кількох символів.

Як правило, символи узагальнення – це або знак питання (?), який ілюструє окремий символ, або зірочка (*), що ілюструє кілька символів.

приклад-

14. Знайдіть зображення у форматі .webp

Це допоможе нам видобути лише файли з розширенням .webp з архіву file.tar. Параметр -wildcards інформує tar про інтерпретацію символів підстановки в назві файлу, який потрібно видобути.

Ім’я файлу (*.webp) укладено в одинарні лапки для захисту символу узагальнення (*) від неправильного розширення будь-якою оболонкою.

Команда така:

 $ tar tvf file.tar --wildcards '*.webp' 

Команда Tar в Linux

Примітка. У наведеній вище команді символ «*» застосовано в позиції назви файлу для отримання кожного файлу, доступного в цьому конкретному каталозі.

15. Видаліть файли з архіву tar

Ми можемо використовувати опцію --delete для видалення файлів і архіву tar.

Команда така:

 $ tar --delete -f archive.tar file_name 

приклад:

 tar -delete -f file.tar hello1.txt 

Вихід:

Команда Tar в Linux

hello1.txt файл видалено з архіву file.tar:

Команда Tar в Linux