Jak utworzyć plik tar.7z z wiersza poleceń?

21

Chciałbym spakować moją pracę domową z zeszłego roku. Jak spakować i spakować cały folder z linii poleceń Ubuntu (nie mam GUI).

alfanumeryczny74
źródło

Odpowiedzi:

25

Użyj następującego jednowarstwowego:

tar cf - <source folder> | 7z a -si <Destination archive>.tar.7z
ortang
źródło
Potencjalne źródło: man 7z.
Wilf
9

Czytać man tar. Oferuje:

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

Lub, jeśli żaden z nich nie jest odpowiedni dla Ciebie, a masz program do kompresji, który czyta stdin, możesz:

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

Zauważ, że piszę dane wyjściowe w innym miejscu niż $HOME(tworzenie kopii zapasowej w katalogu, który tworzysz, prowadzi do nieograniczonego wzrostu plików).

Lub możesz przeczytać man 7z- wygląda na to, że możesz

dir="directory to save"
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on /tmp/archive.7z $dir 
waltinator
źródło
7

To nie jest dobry pomysł kompresji bezpośrednio z 7z spcially na systemach Unix / Linux: 7z nie zachowuje uprawnienia i czy informacje użytkownika / grupy . Więc: najpierw smoła, a następnie kompresuj.

Jak podano na stronie wiki 7zip pod adresem http://en.wikipedia.org/wiki/7z#Limitations :

Ograniczenia

Format 7z nie przechowuje uprawnień do systemu plików (takich jak uprawnienia właściciela / grupy UNIX lub listy ACL NTFS), dlatego może być nieodpowiedni do celów tworzenia kopii zapasowych / archiwizacji. Rozwiązaniem tego problemu w systemach typu UNIX jest konwersja danych na strumień bitów tar przed kompresją za pomocą 7z.

Giuseppe Curto
źródło
5

Sugeruję użycie:

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

dla dramatycznego przyspieszenia.

Ma tę zaletę, że używa lzma2 ( -m0=lzma2) (który wykorzystuje maksimum dostępnych rdzeni w twoim systemie i preset ( -mx=3) „Szybka kompresja” , który jest zasadniczo szybki i wystarczająco dobry. Zauważ, że LZMA2 wykorzystuje nie tylko wszystkie rdzenie przy kompresji, ale także na dekompresja.

vordhosbn
źródło
1
Wreszcie, z twoją odpowiedzią, znalazłem to, czego szukałem: możliwość użycia wszystkich procesorów w zadaniu.
Lonnie Best
0

Powinieneś użyć tar -Jchf <Filename>.tar.xz <Files to compress>

-JWykorzystuje algorytm kompresji XZ, tak samo jak 7zip

-ctworzy nowy plik -hzachowuje simlinks -fustawia nazwę pliku

chrześcijanin
źródło