Otrzymałem dystrybucję oprogramowania Unix jako skompresowany plik CPIO. Jakie jest najlepsze polecenie do rozpakowania plików?
Otrzymałem dystrybucję oprogramowania Unix jako skompresowany plik CPIO. Jakie jest najlepsze polecenie do rozpakowania plików?
Odpowiedzi:
gzip -cd foo.cpio.gz | cpio -idmv
mkdir archive
cd archive
zcat ../archive.cpio.gz | cpio -idmv --no-absolute-filenames
Chociaż jest to stare pytanie, pojawia się wysoko w Google, więc pomyślałem, że mogę je zaktualizować. Zgadzam się z ogólnie przyjętą odpowiedzią, ale powinieneś dodać „--no-absolutne-nazwy plików”, chyba że zamierzasz zastąpić ważne pliki systemowe na swoim komputerze. Osobiście wolę „zcat” niż „gzip -cd” lub „gunzip -c”.
Na koniec zauważ, że musisz uruchomić cpio jako root (np. Sudo), jeśli rozpakowujesz główny system plików zawierający węzły urządzeń.
Ta strona Wikipedii cpio
ma kilka dobrych notatek.
Aby uzyskać więcej informacji, zapoznaj się z cpio
instrukcją .
Link z tej samej strony w Wikipedii omawia porównanie z tar
archiwami .
A oto przykład użycia cpio
z tym tar
formatem .
Na przykład, aby wyodrębnić zarchiwizowaną zawartość / etc / httpd / do bieżącego katalogu, tworząc podkatalogi ./etc/httpd/
mkdir restored-etc-httpd
cd restored-etc-httpd
zcat archive.cpio.gz | cpio -idmv --no-absolute-filenames "*etc/httpd/*"
Zarówno zaakceptowana odpowiedź, jak i Matt były dla mnie pomocne, ale przez chwilę byłem zaskoczony z powodu trzech szczegółów:
--no-absolute-filenames
musi poprzedzać wzorzec w linii poleceń/
z nazw plików, pasujący wzorzec musi również pomijać interlinię/
man cpio
co widziałeś?