cpio - cpio
Pierwotny autor (autorzy) | Dick Haight |
---|---|
Deweloper(zy) | AT&T Bell Laboratories |
Pierwsze wydanie | 1977 |
System operacyjny | Unix i uniksopodobne |
Rodzaj | Komenda |
Licencja |
GNU cpio: biblioteka GPLv3 bsdcpio: nowa licencja BSD |
Rozszerzenie nazwy pliku |
.cpio
|
---|---|
Rodzaj mediów internetowych |
aplikacja/x-cpio |
Jednolity identyfikator typu (UTI) | public.cpio-archive |
Rodzaj formatu | Archiwizator plików |
cpio to ogólne narzędzie do archiwizacji plików i związane z nim formaty plików . Jest instalowany głównie w systemach operacyjnych typu Unix. Program narzędziowy był pierwotnie pomyślany jako program do archiwizacji na taśmach jako część środowiska Programmer's Workbench ( PWB/UNIX ) i był składnikiem praktycznie każdego systemu operacyjnego Unix wydanego później. Jego nazwa pochodzi od wyrażenia copy in and out , w ścisłym opisie użycia przez program standardowego wejścia i standardowego wyjścia w jego działaniu.
Wszystkie warianty Uniksa obsługują również inne programy do tworzenia kopii zapasowych i archiwizacji, takie jak tar , który stał się bardziej rozpoznawalny. Użycie cpio przez RPM Package Manager , w programie initramfs jądra Linux 2.6 oraz w Instalatorze Apple ( pax ) czyni cpio ważnym narzędziem do archiwizacji.
Od czasu oryginalnego projektu cpio i jego format pliku archiwum przeszły kilka, czasem niekompatybilnych, zmian. Najbardziej godna uwagi jest zmiana, obecnie opcja operacyjna, z używania binarnego formatu metainformacji pliku archiwum na reprezentację opartą na ASCII .
Historia
cpio pojawił się w wersji 7 Unix jako część projektu Programmer's Workbench .
Operacja i format archiwum
cpio został pierwotnie zaprojektowany do przechowywania archiwów plików kopii zapasowych na urządzeniu taśmowym w sposób sekwencyjny, ciągły. Nie kompresuje żadnej zawartości, ale powstałe archiwa są często kompresowane za pomocą gzipa lub innych zewnętrznych kompresorów.
Tworzenie archiwum
Podczas tworzenia archiwów podczas operacji kopiowania , zainicjowanej flagą wiersza poleceń -o , cpio odczytuje nazwy ścieżek plików i katalogów ze swojego standardowego kanału wejściowego i zapisuje wynikowy strumień bajtów archiwum na swoim standardowym wyjściu. Dlatego Cpio jest zwykle używany z innymi narzędziami, które generują listę plików do archiwizacji, takimi jak program find .
Powstałe archiwum cpio to sekwencja plików i katalogów połączonych w jedno archiwum, oddzielone sekcjami nagłówka z metainformacjami o pliku, takimi jak nazwa pliku, numer i-węzła, właściciel, uprawnienia i sygnatury czasowe. Zgodnie z konwencją, nazwa pliku archiwum ma zwykle rozszerzenie cpio .
W tym przykładzie użyto narzędzia find do wygenerowania listy nazw ścieżek rozpoczynających się w bieżącym katalogu w celu utworzenia archiwum drzewa katalogów:
$ find . -depth -print | cpio -o > /path/archive.cpio
Ekstrakcja
Podczas operacji kopiowania , zainicjowanej przez flagę wiersza poleceń i , cpio odczytuje archiwum ze swojego standardowego wejścia i odtwarza zarchiwizowane pliki w systemie plików systemu operacyjnego.
$ cpio -i -vd < archive.cpio
Flaga wiersza poleceń d mówi cpio, aby w razie potrzeby konstruował katalogi. Flaga v ( pełny ) wyświetla nazwy plików podczas ich wyodrębniania.
Wszelkie pozostałe argumenty wiersza poleceń inne niż flagi opcji są podobnymi do powłoki wzorcami globbingu; z archiwum kopiowane są tylko pliki z archiwum o pasujących nazwach. Poniższy przykład wyodrębnia plik /etc/fstab z archiwum:
$ cpio -i -d /etc/fstab < archive.cpio
Lista
Pliki zawarte w archiwum cpio mogą być wymienione z tym wywołaniem:
$ cpio -t < archive.cpio
Lista może być przydatna, ponieważ archiwum cpio może zawierać ścieżki bezwzględne, a nie względne (np. /bin/ls vs. bin/ls ).
Kopiuj
Cpio obsługuje trzeci typ operacji, który kopiuje pliki . Jest to inicjowane za Przejścia flaga opcji ( p ). Ten tryb łączy kroki kopiowania i kopiowania bez faktycznego tworzenia archiwum plików. W tym trybie cpio odczytuje nazwy ścieżek na standardowym wejściu, tak jak operacja kopiowania , ale zamiast tworzyć archiwum, odtwarza katalogi i pliki w innej lokalizacji w systemie plików, określonej w ścieżce podanej w wierszu poleceń argument.
Ten przykład kopiuje drzewo katalogów zaczynając od bieżącego katalogu do innej ścieżki nowa ścieżka w systemie plików, zachowując czasy modyfikacji plików (flag m ), tworząc potrzebne katalogi ( d ), bezwarunkowo zastępując istniejące pliki ( u ), podczas tworzenia lista postępów na standardowym wyjściu ( v ):
$ find . -depth -print | cpio -p -dumv new-path
Standaryzacja POSIX
Cpio narzędzie jest znormalizowany w POSIX .1-1988, ale został pominięty POSIX.1-2001 ze względu na jego rozmiar pliku (i innych) ograniczeń. Na przykład wersja GNU oferuje różne opcje formatu wyjściowego, takie jak „bin” (domyślny i przestarzały) i „ustar” (tar POSIX), z ograniczeniami rozmiaru pliku 2 147 483 647 bajtów (2 GB) i 8 589 934 591 bajtów (8 GB) ).
Formaty plików cpio, ustar i pax są zdefiniowane przez POSIX.1-2001 dla narzędzia pax , które jest obecnie zgodne z POSIX 1003.1-2008 , a więc może odczytywać i zapisywać archiwa w formacie cpio i ustar.
Realizacje
Większość dystrybucji Linuksa dostarcza wersję GNU cpio
. FreeBSD i macOS korzystają z licencji BSD bsdcpio
dostarczanej z libarchive .