Ero sivun ”Cpio” versioiden välillä
Jem (keskustelu | muokkaukset) p (Lisätty linkkejä ja muuta pientä.) |
p (löytyy mallineesta) |
||
(4 välissä olevaa versiota 3 käyttäjän tekeminä ei näytetä) | |||
Rivi 1: | Rivi 1: | ||
{{DISPLAYTITLE:{{lcfirst:{{PAGENAME}}}}}} | |||
'''cpio''' komentoriviohjelma on [[tiedosto|tiedostojen]] arkistointityökalu. Ohjelman nimi tulee sanoista '''C'''o'''p'''y '''I'''n '''O'''ut. <tt>Cpio</tt> käyttää omaa arkistoformaattia; arkistojen tiedostopääte on tyypillisesti <tt>.cpio</tt>. <tt>Cpio</tt>-ohjelma pystyy kuitenkin lukemaan ja kirjoittamaan muitakin kuin omaa tiedostoformaattia, esimerkiksi <tt>tar</tt>-arkistoja. | |||
<tt>Cpio</tt> ei ole saavuttanut yhtä suurta suosiota kuin [[tar]]-ohjelma, mikä saattaa johtua cpio-ohjelman käyttötavasta, joka poikkeaa hieman muiden arkistointiohjelmien käyttötavasta. <tt>Cpio</tt>:lla on kuitenkin joitakin vahvuuksia verrattuna esimerkiksi <tt>tar</tt>-ohjelmaan. | <tt>Cpio</tt> ei ole saavuttanut yhtä suurta suosiota kuin [[tar]]-ohjelma, mikä saattaa johtua cpio-ohjelman käyttötavasta, joka poikkeaa hieman muiden arkistointiohjelmien käyttötavasta. <tt>Cpio</tt>:lla on kuitenkin joitakin vahvuuksia verrattuna esimerkiksi <tt>tar</tt>-ohjelmaan. [[RPM]]-paketeissa tiedostot säilytetään <tt>cpio</tt>-arkistossa. | ||
==Käyttö== | ==Käyttö== | ||
Rivi 13: | Rivi 14: | ||
===Arkiston luonti=== | ===Arkiston luonti=== | ||
Arkisto luodaan <tt>-o</tt> | Arkisto luodaan [[valitsin|valitsimella]] <tt>-o</tt> (Copy-out). Komento | ||
find proj1 | cpio -o > proj1.cpio | find proj1 | cpio -o > proj1.cpio | ||
luo arkistotiedoston, johon on talletettu koko <tt>proj1</tt>-alihakemiston sisältö. <tt>Cpio</tt>-ohjelma tulostaa arkiston sisällön [[Syötevirta|standard outputiin]]. Jos arkiston haluaa tallentaa tiedostoon, pitää käyttää [[Komentotulkki|komentotulkin]] tiedostoonohjausmerkkiä >, tai vaihtoehtoisesti käyttää <tt>cpio</tt>-ohjelman <tt>-F</tt>- | luo arkistotiedoston, johon on talletettu koko <tt>proj1</tt>-alihakemiston sisältö. <tt>Cpio</tt>-ohjelma tulostaa arkiston sisällön [[Syötevirta|standard outputiin]]. Jos arkiston haluaa tallentaa tiedostoon, pitää käyttää [[Komentotulkki|komentotulkin]] tiedostoonohjausmerkkiä >, tai vaihtoehtoisesti käyttää <tt>cpio</tt>-ohjelman <tt>-F</tt>-valitsinta. '''Huom!''' Luotavan arkistotiedoston ei ole hyvä sijaita arkistoitavan alihakemiston sisällä, sillä muuten lopputulos on ennalta arvaamaton, koska <tt>find</tt>-ohjelma löytää myös arkistotiedoston ja antaa sen syötteeksi <tt>cpio</tt>-ohjelmalle. Jos nykyisen hakemiston "<tt>.</tt>" sisällöstä halutaan luoda <tt>cpio</tt>-arkisto, sen voi tehdä esimerkiksi näin: | ||
find . | cpio -o > ../proj1.cpio | find . | cpio -o > ../proj1.cpio | ||
Rivi 31: | Rivi 32: | ||
===Arkiston purku=== | ===Arkiston purku=== | ||
<tt>Cpio</tt>-arkisto puretaan <tt>-i</tt>- | <tt>Cpio</tt>-arkisto puretaan <tt>-i</tt>-valitsimella (Copy-in). Lisäksi kannattaa käyttää <tt>-d</tt>-valitsinta, joka tarvittaessa luo alihakemistot, joihin tiedostot tallennetaan. | ||
cpio -id < proj1.cpio | cpio -id < proj1.cpio | ||
Ohjelma lukee arkiston oletusarvoisesti standard inputista, mutta arkistotiedosto voidaan myös ilmoittaa <tt>-F</tt>- | Ohjelma lukee arkiston oletusarvoisesti standard inputista, mutta arkistotiedosto voidaan myös ilmoittaa <tt>-F</tt>-valitsimella. | ||
Standard inputin ja standard outputin käyttö syöttö- ja tulostuskanavana mahdollistaa arkistojen joustavan käsittelyn. Arkisto voidaan esimerkiksi lähettää datavirtana ssh-yhteyden yli toiseen koneeseen, jossa se puretaan: | Standard inputin ja standard outputin käyttö syöttö- ja tulostuskanavana mahdollistaa arkistojen joustavan käsittelyn. Arkisto voidaan esimerkiksi lähettää datavirtana ssh-yhteyden yli toiseen koneeseen, jossa se puretaan: | ||
cat proj1.cpio | ssh hemmo@kone 'cpio -id' | cat proj1.cpio | ssh hemmo@kone 'cpio -id' | ||
====RPM-tiedoston purku==== | |||
[[RPM]]-paketteja voi purkaa <tt>cpio</tt>:lla, kunhan ensin <tt>[[rpm2cpio]]</tt>-ohjelmalla erotetaan cpio-arkisto .rpm-tiedostosta: | |||
rpm2cpio paketti.rpm | cpio -idmv | |||
Valitsin <tt>-m</tt> säilyttää tiedostojen muokkausajat RPM-arkiston mukaisina ja valitsin <tt>-v</tt> tulostaa kaikki puretut tiedostonimet. | |||
===Copy-pass=== | ===Copy-pass=== | ||
Rivi 49: | Rivi 57: | ||
===Arkiston selaus=== | ===Arkiston selaus=== | ||
<tt>cpio</tt>-arkiston sisällä olevien tiedostojen ja hakemistojen nimet saa tulostettua <tt>-t</tt>- | <tt>cpio</tt>-arkiston sisällä olevien tiedostojen ja hakemistojen nimet saa tulostettua <tt>-t</tt>-valitsimella: | ||
cpio -t < proj1.cpio | cpio -t < proj1.cpio | ||
Rivi 55: | Rivi 63: | ||
==Lisätietoja== | ==Lisätietoja== | ||
*man cpio | *<code>man cpio</code> | ||
*info cpio | *<code>info cpio</code> | ||
{{Pakkausohjelmat}} | |||
[[Luokka:Komentorivin perustyökalut]] | [[Luokka:Komentorivin perustyökalut]] |
Nykyinen versio 21. maaliskuuta 2022 kello 02.00
cpio komentoriviohjelma on tiedostojen arkistointityökalu. Ohjelman nimi tulee sanoista Copy In Out. Cpio käyttää omaa arkistoformaattia; arkistojen tiedostopääte on tyypillisesti .cpio. Cpio-ohjelma pystyy kuitenkin lukemaan ja kirjoittamaan muitakin kuin omaa tiedostoformaattia, esimerkiksi tar-arkistoja.
Cpio ei ole saavuttanut yhtä suurta suosiota kuin tar-ohjelma, mikä saattaa johtua cpio-ohjelman käyttötavasta, joka poikkeaa hieman muiden arkistointiohjelmien käyttötavasta. Cpio:lla on kuitenkin joitakin vahvuuksia verrattuna esimerkiksi tar-ohjelmaan. RPM-paketeissa tiedostot säilytetään cpio-arkistossa.
Käyttö[muokkaa]
Cpio-ohjelman käytön yhteydessä käytetään termejä In ja Out ehkä tutumpien Create ja Extract sijasta. Suunta on tiedostojärjestelmästä päin tarkasteltuna: In tarkoittaa siis tiedostojen lukua arkistosta tiedostojärjestelmään, Out vastaavasti tiedostojen kopioimista tiedostojärjestelmästä arkistoon (esimerkiksi nauha-aseman nauhalle).
Toinen merkittävä ero verrattuna esimerkiksi tar-ohjelmaan on se, että cpio-ohjelma lukee luodessaan arkistoa talletettavien tiedostojen nimet ohjelman syötteenä standard inputista. Useimmille muille arkistointiohjelmille arkistoitavien tiedostojen ja hakemistojen nimet annetaan komentorivin parametrina.
Tiedostojen nimien lukeminen ohjelman syötteenä tekee cpio-ohjelmasta "sovitetun parin" find-ohjelman kanssa. Cpio-ohjelmaa käytetäänkin useimmiten find-ohjelman kanssa, kuten alla olevista esimerkeistä nähdään.
Arkiston luonti[muokkaa]
Arkisto luodaan valitsimella -o (Copy-out). Komento
find proj1 | cpio -o > proj1.cpio
luo arkistotiedoston, johon on talletettu koko proj1-alihakemiston sisältö. Cpio-ohjelma tulostaa arkiston sisällön standard outputiin. Jos arkiston haluaa tallentaa tiedostoon, pitää käyttää komentotulkin tiedostoonohjausmerkkiä >, tai vaihtoehtoisesti käyttää cpio-ohjelman -F-valitsinta. Huom! Luotavan arkistotiedoston ei ole hyvä sijaita arkistoitavan alihakemiston sisällä, sillä muuten lopputulos on ennalta arvaamaton, koska find-ohjelma löytää myös arkistotiedoston ja antaa sen syötteeksi cpio-ohjelmalle. Jos nykyisen hakemiston "." sisällöstä halutaan luoda cpio-arkisto, sen voi tehdä esimerkiksi näin:
find . | cpio -o > ../proj1.cpio
Find-ohjelman avulla voidaan hyvin joustavasti valita mitkä tiedostot halutaan mukaan arkistoon, ja mitkä jätetään sen ulkopuolelle. Esimerkiksi seuraavalla komennolla arkistoidaan hakemiston proj1 sisältämät .c- ja .h-tiedostot. Komento tallentaa myös alihakemistoista löytyvät .c- ja .h-tiedostot, ja säilyttää hakemistorakenteen täsmäävien tiedostojen osalta.
find proj1 -name "*.c" -o -name "*.h" | cpio -o > proj1src.cpio
Find-ohjelma mahdollistaa tiedostojen valitsemisen hyvin monipuolisesti, vaikkapa nimien, tiedoston omistajan tai aikaleiman mukaan. Tämä on find-ohjelman ominaisuus; lisätietoja find-ohjelman dokumentaatiosta.
Jos on epävarma siitä, mitkä kaikki tiedostot tallentuvat arkistoon, voi komentoa kuivaharjoitella jättämällä cpio-osan pois, jolloin find-komento tulostaa täsmäävien tiedostojen nimet.
Arkiston purku[muokkaa]
Cpio-arkisto puretaan -i-valitsimella (Copy-in). Lisäksi kannattaa käyttää -d-valitsinta, joka tarvittaessa luo alihakemistot, joihin tiedostot tallennetaan.
cpio -id < proj1.cpio
Ohjelma lukee arkiston oletusarvoisesti standard inputista, mutta arkistotiedosto voidaan myös ilmoittaa -F-valitsimella.
Standard inputin ja standard outputin käyttö syöttö- ja tulostuskanavana mahdollistaa arkistojen joustavan käsittelyn. Arkisto voidaan esimerkiksi lähettää datavirtana ssh-yhteyden yli toiseen koneeseen, jossa se puretaan:
cat proj1.cpio | ssh hemmo@kone 'cpio -id'
RPM-tiedoston purku[muokkaa]
RPM-paketteja voi purkaa cpio:lla, kunhan ensin rpm2cpio-ohjelmalla erotetaan cpio-arkisto .rpm-tiedostosta:
rpm2cpio paketti.rpm | cpio -idmv
Valitsin -m säilyttää tiedostojen muokkausajat RPM-arkiston mukaisina ja valitsin -v tulostaa kaikki puretut tiedostonimet.
Copy-pass[muokkaa]
cpio-ohjelma voidaan myös suorittaa ns. Copy-pass -tilassa, joka yhdistää arkiston luonnin ja purun yhdeksi komennoksi. Tässä tilassa alihakemisto voidaan kopioida kokonaisuudessaan toiseen paikkaan tiedostojärjestelmässä. Copy-pass -tilassa kohdehakemisto annetaan komentoriviparametrina; hakemiston on oltava olemassa etukäteen. Kopioitavien tiedostojen nimet luetaan syötteenä aivan kuten Copy-out -tilassa.
find proj1 -name "*.c" -o -name "*.h" | cpio -pd proj1src-backup
Arkiston selaus[muokkaa]
cpio-arkiston sisällä olevien tiedostojen ja hakemistojen nimet saa tulostettua -t-valitsimella:
cpio -t < proj1.cpio
Lisätietoja[muokkaa]
man cpio
info cpio
Pakkausohjelmat |
File Roller |Tar | xz | p7zip | PeaZip | Unzip | zip | Unrar | Gzip | Bzip2 | cpio | lzma | XZ Utils |