Jakie są polecenia kompresji plików w systemie Linux i jaka jest między nimi różnica? (na przykład: tar, gzip, rar).
Pracuję nad Linux Mint 11 i robię skrypt do kompresji plików. Potrzebuję:
-
1. obsługa szyfrowania haseł (i deszyfrowania)
2. obsługa podziału plików
3. obsługa poziomu kompresji
Jakiego rodzaju kompresji mogę używać w Linux Mint 11 (ostatecznie 14) i czy jest dla mnie najlepszy?
tar
Nie jest to kompresor (ale może powołaćgzip
,bzip2
....).Odpowiedzi:
Przede wszystkim niektóre polecenia służą do tworzenia archiwów - tj. plik zawierający inne pliki, często ze strukturą katalogów, własnością, uprawnieniami i datami. Najczęstsze z nich to
ar
(używane podczas tworzenia bibliotek),tar
(TapeARchive) icpio
(CoPyInOut).Następnie mamy kilka poleceń służących do kompresji plików - np. dzięki czemu plik zajmuje mniej miejsca na dysku. Kompresję można również wykonać w przypadku archiwów. Najczęstszymi samoczynnym programy
gzip
,bzip2
,xz
,7zip
... jak również dwie starsze,compress
icompact
.Jest to bardzo zgodne z „filozofią uniksową”, w której każde polecenie robi tylko jedną rzecz (ale robi to dobrze) ... tutaj albo tworzy archiwa, albo kompresuje plik - ale nie jedno i drugie. Oczywiście jedno polecenie może wywoływać inne, jak
tar
może wywołaćgzip
lubbzip2
.W systemie Windows bardziej powszechne jest tworzenie programów łączących powiązane zadania - a raczej zadania pozornie powiązane z użytkownikiem ... Jak tworzenie, archiwizowanie i kompresowanie - nawet jeśli są to bardzo różne zadania. W związku z tym mamy także narzędzia pod Uniksem / Linuksem do obsługi - a czasem tworzenia - takich archiwów.
zip
,rar
Aarj
są przykłady takich archiwów, które są bardziej lub mniej wspierany pod Linuksem. Zazwyczaj kompresują one i archiwizują jednocześnie (np.zip
Najpierw kompresują pliki, a następnie archiwizują skompresowane pliki).rar
izip
czy AFAIK wie, że obsługuje jakieś „szyfrowanie” i hasło, ale są one raczej słabe. Prawdopodobnie lepiej (a także bardziej poprawnie w systemie Unix) skorzystać z osobnego narzędzia do szyfrowania i / lub ochrony plików hasłem - możegnupg
czytruecrypt
?Przynajmniej
zip
,rar
atar
tworzenie wsparcia archiwów z wielu części. Jednak inny dopuszczalny „sposób uniksowy”, aby to zrobić; byłoby użyćsplit
albo w nieskompresowanym archiwum (tar lub cpio) i skompresować każdą część osobno, albo w skompresowanym pliku (np. z bzip2) - a później użyćcat
do scalenia części. Najlepiej byłoby podzielić skompresowane archiwum, ponieważ po ponownym scaleniu program do kompresji (np. Bzip2) wykryłby wszelkie błędy. Chociaż kompresowanie każdej części osobno, zapewni, że pozostałe części będą mogły zostać odzyskane (z większością ich plików), jeśli jedna część zostanie uszkodzona.źródło
Ogólnie rzecz biorąc, bzip jest lepszy w kompresji niż (g) zip, a 7zip jest lepszy niż bzip. Tar służy do łączenia plików w jeden duży plik i nie kompresuje się. Jest często używany razem z narzędziem do kompresji. AFAIK wszystkie formaty mogą obsługiwać szyfrowanie, podział i poziom kompresji, ale nie wszystkie narzędzia mogą korzystać z tych opcji.
Spowoduje to tarowanie i kompresowanie. Nie wiem w jakiej kolejności, ale myślę, że plik jest najpierw kompresowany, a następnie dodawany do archiwum. Oryginalne pliki pozostają tam, gdzie są.
Inną opcją jest gzip, ale działa to tylko na pojedyncze pliki
Spowoduje to spakowanie pliku i dodanie go do nowego archiwum. Kiedy wszystko się skończy, plik testowy jest usuwany, jak sądzę.
źródło
compress
.foo.gz
plik dla każdego wejściafoo
(a następnie usuwa nieskompresowaną wersję).gzip test
po prostu wykonuje ten proces dla „testu”. Jeśli jednak chcesz, możesz zeskrobać (bez kompresji) kilka wygenerowanych w ten sposób gz.