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 cpioma kilka dobrych notatek.
Aby uzyskać więcej informacji, zapoznaj się z cpioinstrukcją .
Link z tej samej strony w Wikipedii omawia porównanie z tararchiwami .
A oto przykład użycia cpioz tym tarformatem .
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-filenamesmusi poprzedzać wzorzec w linii poleceń/z nazw plików, pasujący wzorzec musi również pomijać interlinię/
man cpioco widziałeś?