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

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

21
задан 26 May 2013 в 13:54

5 ответов

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

tar cf - <source folder> | 7z a -si <Destination archive>.tar.7z
0
ответ дан 26 May 2013 в 13:54

Читать 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 
0
ответ дан 26 May 2013 в 13:54

Я бы предложил вам использовать:

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

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

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

0
ответ дан 26 May 2013 в 13:54

Это не хорошая идея сжатия непосредственно с 7z, особенно в системах Unix / Linux: 7z не сохраняет разрешения и / или информацию о пользователе / ​​группе . Итак: сначала смола, а затем сжимаем.

Как сообщается на вики-странице 7zip на http://en.wikipedia.org/wiki/7z#Limitations :

Ограничения

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

0
ответ дан 26 May 2013 в 13:54

Необходимо использовать tar -Jchf <Filename>.tar.xz <Files to compress>

-J использование алгоритм сжатия XZ, то же как 7zip

-c создает новый файл -h, сохраняет символьные ссылки -f наборы имя файла

0
ответ дан 11 October 2019 в 15:25

Другие вопросы по тегам:

Похожие вопросы: