Кіріспе

Архив файл пішімі cpio – бұл жалпы файлдарды архивтеуге арналған құрал және оған байланысты файл пішімі. Ол негізінен Unix-тің сияқты компьютерлік операциялық жүйелерінде орнатылады. Бұл бағдарламалық құрал бастапқыда Бағдарламашының жұмыс ортасының (PWB/UNIX) бір бөлігі ретінде магниттік лентаға архивтеу бағдарламасы ретінде жоспарланған және содан бері шығарылған барлық Unix операциялық жүйелерінің құрамдас бөлігіне айналды. Оның атауы бағдарламаның стандартты кіріс және стандартты шығысты пайдалануын дәл сипаттау үшін «көшіру және шығару» деген сөздерден алынған. Unix-тің барлық түрлері басқа да резервтік көшірмелер жасау және архивтеу бағдарламаларын, мысалы, кеңінен танымал tar сияқты қолдайды. RPM пакеттік менеджерінің cpio-ны пайдалануы, Linux ядросының 2.6 нұсқасынан бері initramfs-інде және Apple-дің орнатушысында (pax) cpio-ны маңызды архивтеу құралына айналдырды. Бастапқы жобасынан бері cpio және оның архивтік файл пішімі бірнеше рет, кейде үйлесімсіздіктерге алып келетін өзгерістерге ұшырады. Ең маңыздысы – қазір операциялық опция болып табылатын, архивтік файлдың метадеректердің екілік пішімінен ASCII негізіндегі көрсетіліміне ауысу. POSIX стандарты cpio-дан бас тартып, pax-ты қолдануды ұсынды.

Тарих

cpio Unix 7-ші нұсқасында Programmer's Workbench жобасының құрамында пайда болды.

Жұмыс істеу және архивтік пішім

cpio бастапқыда архив файлдарын тізбектеліп, үздіксіз түрде таспа құрылғысында сақтау үшін әзірленген. Ол ешқандай мазмұнды қысқармайды, бірақ алынған архивтер көбінесе gzip немесе басқа сыртқы қысқыштарды пайдаланып қысылады.

Экстракциялау

Копиялау операциясы кезінде, командалық жолдың опциясымен басталады, cpio стандарттық кірістен архивті оқиды және операциялық жүйенің файлдық жүйесінде архивтелген файлдарды қайта жасайды. $ cpio i vd < архив.cpio Командалық жол опциясы cpio-ға қажет болған жағдайда каталогтарды құруды айтады. Опция (verbose) файлдардың аттарын олар шығарылған кезде тізімдейді. Опциялардың орнына қалған командалық жол аргументтері – бұл globbing үлгілеріне ұқсас; архивтен тек сәйкес атаулары бар файлдар ғана көшіріледі. Мысалы, /etc/fstab файлын архивтен шығару үшін: $ cpio i d /etc/fstab < архив.cpio

POSIX стандарттау

cpio құралы POSIX.1 1988 стандартында келтірілген, бірақ файл мөлшері мен басқа да шектеулерге байланысты POSIX.1 2001-ден алынып тасталды. Мысалы, GNU нұсқасы әртүрлі шығару форматтарын ұсынады, мысалы "bin" (дефолтты және қолданыстан шыққан) және "ustar" (POSIX tar), олардың файл мөлшері шектеулері тиісінше 2,147,483,647 байт (2 ГБ) және 8,589,934,591 байт (8 ГБ) құрайды. cpio, ustar және pax файл форматтары POSIX.1 2001 бойынша pax құралы үшін анықталған, ол қазіргі уақытта POSIX 1003.1 2008 стандартымен үйлеседі, сондықтан ол cpio және ustar форматталған архивтерді оқи және жаза алады.

Қолданылу

Linux дистрибутивтерінің көпшілігі GNU нұсқасындағы cpio-ны қамтамасыз етеді. FreeBSD және macOS libarchive жинағымен бірге келетін BSD лицензиясымен берілген bsdcpio-ны пайдаланады.