Головна » як » Як стиснути і витягти файли за допомогою tar Command на Linux

    Як стиснути і витягти файли за допомогою tar Command на Linux

    Команда tar на Linux часто використовується для створення архівних файлів .tar.gz або .tgz, які також називаються “tarballs”. . Команда tar може також витягти отримані архіви.

    Команда GNU tar, включена до дистрибутивів Linux, має вбудовану компресію. Він може створювати архів .tar, а потім стискати його за допомогою компресії gzip або bzip2 в одній команді. Тому результуючий файл є файлом .tar.gz або файлом .tar.bz2.

    Стисніть весь каталог або окремий файл

    Використовуйте наступну команду, щоб стиснути весь каталог або один файл на Linux. Він також стискає будь-який інший каталог всередині каталогу, який ви вкажете - іншими словами, він працює рекурсивно.

    tar -czvf ім'я-архіву.tar.gz / шлях / до / каталог-або-файл

    Ось що означають ці перемикачі:

    • -c: Create архів.
    • -z: стиснути архів за допомогою gzip.
    • -v: Показувати прогрес у терміналі під час створення архіву, також відомого як "vрежим. У цих командах v завжди є необов'язковим, але це корисно.
    • -f: Дозволяє вказати fім'я архіву.

    Припустимо, у поточному каталозі є каталог з назвою "stuff", і ви хочете зберегти його до файлу з ім'ям archive.tar.gz. Ви хочете виконати таку команду:

    tar -czvf archive.tar.gz матеріал

    Або, скажімо, у поточній системі є каталог у / usr / local / something, і ви бажаєте стиснути його до файлу з ім'ям archive.tar.gz. Ви хочете виконати таку команду:

    tar -czvf archive.tar.gz / usr / local / something

    Стиснення декількох каталогів або файлів одночасно

    Хоча tar часто використовується для стиснення одного каталогу, ви також можете використовувати його для стиснення декількох каталогів, декількох окремих файлів або обох. Просто надайте список файлів або каталогів замість одного. Наприклад, скажімо, ви бажаєте стиснути каталог / home / ubuntu / Downloads, каталог / usr / local / stuff і /home/ubuntu/Documents/notes.txt. Просто запустіть таку команду:

    tar -czvf archive.tar.gz / додому / ubuntu / Завантаження / usr / local / stuff /home/ubuntu/Documents/notes.txt

    Просто вкажіть якомога більше каталогів або файлів, які потрібно створити.

    Виключити каталоги та файли

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

    Наприклад, скажімо, ви хочете стиснути / home / ubuntu, але ви не хочете стискати / home / ubuntu / Downloads і /home/ubuntu/.cache каталоги. Ось як це зробити:

    tar -czvf archive.tar.gz / додому / ubuntu --exclude = / home / ubuntu / Завантаження --exclude = / home / ubuntu / .cache

    The --виключити Перемикач дуже потужний. Вона не приймає назви каталогів і файлів - вона фактично приймає шаблони. З ним можна зробити набагато більше. Наприклад, можна архівувати весь каталог і виключати всі файли .mp4 наступною командою:

    tar -czvf archive.tar.gz / додому / ubuntu --exclude = *. mp4

    Замість цього використовуйте стиснення bzip2

    Хоча для створення файлів .tar.gz або .tgz найчастіше використовується компресія gzip, tar також підтримує стиснення bzip2. Це дозволяє створювати файли, що стискаються bzip2, які часто називаються файлами .tar.bz2, .tar.bz або .tbz. Щоб зробити це, просто замініть -z для gzip в командах тут з -j для bzip2.

    Gzip швидше, але зазвичай стискається трохи менше, тому ви отримуєте дещо більший файл. Bzip2 повільніше, але він стискається трохи більше, тому ви отримуєте трохи менший файл. Gzip також є більш поширеним, з деякими знятими Linux системами, включаючи підтримку gzip за замовчуванням, але не підтримку bzip2. Взагалі, gzip і bzip2 практично однакові, і обидва будуть працювати аналогічно.

    Наприклад, замість першого прикладу, який ми надавали для стиснення каталогу речей, виконайте таку команду:

    tar -cjvf archive.tar.bz2 матеріал

    Вилучення архіву

    Як тільки ви маєте архів, ви можете витягти його за допомогою команди tar. Наступна команда витягне вміст archive.tar.gz до поточного каталогу.

    tar -xzvf archive.tar.gz

    Це те ж саме, що і команда створення архіву, яку ми використовували вище, окрім -x перемикач замінює -c перемикач. Це вказує, що ви хочете, щоб exтрактувати архів замість створення.

    Ви можете витягти вміст архіву до певного каталогу. Ви можете це зробити, додавши -C перейти до кінця команди. Наприклад, наступна команда витягне вміст файлу archive.tar.gz до каталогу / tmp.

    tar -xzvf archive.tar.gz -C / tmp

    Якщо файл є стиснутим файлом bzip2, замініть "z" у вищезазначених командах на "j".


    Це найпростіше використання команди tar. Команда включає в себе велику кількість додаткових опцій, тому ми не можемо перерахувати їх тут. Для отримання додаткової інформації. запустіть info tar на командній оболонці, щоб переглянути сторінку детальної інформації команди команди tar. Натисніть кнопку q клавішу, щоб вийти з інформаційної сторінки, коли ви закінчите. Ви також можете ознайомитися з посібником з tar.

    Якщо ви використовуєте графічний робочий стіл Linux, ви також можете використовувати утиліту стиснення файлів або файловий менеджер, що входить до робочого столу, для створення або видобування файлів .tar. У Windows можна витягувати та створювати архіви .tar за допомогою безкоштовної утиліти 7-Zip.