Як створити файл tar.7z з командного рядка?


21

Я хотів би застебнути домашнє завдання з минулого року. Як відстежувати та стискати всю папку з командного рядка Ubuntu (у мене немає графічного інтерфейсу).

Відповіді:


25

Скористайтеся наступним одноклассником:

tar cf - <source folder> | 7z a -si <Destination archive>.tar.7z

Потенційне джерело: man 7z.
Вільф

9

Прочитайте man tar. Він пропонує:

     -a, --auto-compress
       use archive suffix to determine the compression program
     -j, --bzip2
     --lzip
     --lzma
     --lzop
     -z, --gzip, --gunzip --ungzip
     -Z, --compress, --uncompress

Або якщо жодне з них не підходить вам, і у вас є програма стиснення, яка читає stdin, ви могли б:

tar cf- $HOME | my_compression_program >/tmp/compressed.output

Зауважте, що я записую результат десь інше, ніж $HOME(резервне копіювання в каталог, який ви створюєте, ви призводите до необмеженого росту файлів).

Або ви могли прочитати man 7z- це схоже на те, що ви могли зробити

dir="directory to save"
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on /tmp/archive.7z $dir 

7

Це НЕ дуже хороша ідея стиснення безпосередньо з 7z Spcially на Unix / Linux систем: 7z не зберігаються права доступу і чи користувачів / груп інформації . Отже: спочатку дьоготь, а потім компрес.

Як повідомляється на сторінці 7kip wiki за адресою http://en.wikipedia.org/wiki/7z#Limitations :

Обмеження

Формат 7z не зберігає дозволи файлової системи (наприклад, права власника / групи UNIX або NTFS ACL), а тому може бути невідповідним для цілей резервного копіювання / архівування. Для вирішення цього типу UNIX-подібних систем - це перетворити дані в бітовий потік tar перед компресією з 7z.


5

Я б запропонував вам скористатися:

tar cf - foldername | 7z a -si -m0=lzma2 -mx=3 foldername.tar.7z

для різкого збільшення швидкості.

Він має перевагу у використанні lzma2 ( -m0=lzma2) (який використовує максимально доступні ядра у вашій системі та попередньо встановлену функцію "Швидке стиснення" ( -mx=3), що в основному є досить швидким і хорошим. Зауважте, що LZMA2 використовує не тільки всі ядра при стисненні, але і на декомпресія.


1
Нарешті, з вашою відповіддю я знайшов те, що шукав: вміння використовувати всі процесори для завдання.
Lonnie Best

0

Ви повинні використовувати tar -Jchf <Filename>.tar.xz <Files to compress>

-JВикористовує алгоритм стиснення XZ, такий же , як 7zip

-cстворює новий файл, -hзберігає симплінки, -fвстановлює ім'я файлу

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.