Как создать файл tar.7z из командной строки?

17

Я хотел бы закрепить мою домашнюю работу с прошлого года. Как tar и zip всю папку из командной строки Ubuntu (у меня нет GUI).

    
задан alphanumerical74 26.05.2013 в 03:04
источник

4 ответа

20

Используйте следующий однострочный шрифт:

tar cf - <source folder> | 7z a -si <Destination archive>.tar.7z
    
ответ дан ortang 26.05.2013 в 12:02
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 
    
ответ дан waltinator 26.05.2013 в 03:29
6

не хорошая идея, сжимающая напрямую с помощью 7z в системах unix / linux: 7z не сохраняет разрешения и / пользовательскую / групповую информацию . Итак: сначала tar, а затем сжимайте.

Как сообщается на странице 7zip wiki на странице Ссылка :

  

Ограничения      

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

    
ответ дан Giuseppe Curto 03.05.2015 в 08:09
2

Я бы предположил, что вы используете:

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

для увеличения скорости ускорения.

Преимущество состоит в использовании lzma2 ( -m0=lzma2 ) (в котором используются максимальные доступные ядра в вашей системе и предустановка «Быстрое сжатие» ( -mx=3 ), которая в основном быстрая и достаточно хорошая. Обратите внимание, что LZMA2 не только использует все ядра при сжатии, но также и при распаковке.

    
ответ дан vordhosbn 01.06.2016 в 14:13