NÉV
cp − fájlok és könyvtárak másolása
ÁTTEKINTÉS
cp
[opciók] fájl
útvonal
cp [opciók] fájl...
könyvtár
POSIX opciók: [−fipRr] [−−]
GNU opciók (legrövidebb forma): [−abdfilprsuvxPR] [−S UTÓTAG] [−V {numbered,existing,simple}] [−−sparse=MIKOR] [−−help] [−−version] [−−]
LEÍRÁS
A cp parancs fájlokat (vagy, opcionálisan, könyvtárakat) másol. Másolható vele egyetlen fájl a megadott helyre, vagy akár végtelenül sok fájl egy célkönyvtárba.
Ha az utolsó argumentum egy létező könyvtárat jelöl, a cp minden forrás fájlt abba a könyvtárba másol be (ugyanazon nevet megtartva). Ellenben, ha csak két fájl adott, az elsőt a másodikra másolja. Hibát jelent, ha az utolsó argumentum nem könyvtár, és több mint két nem-opció argumentum van megadva.
(Így a ’cp −r /a /b’ /a−t /b/a−ba másolja és a /a/x−et /b/a/x−be akkor, ha a /b létezik, de /a−t /b−be és /a/x−et /b/x-be helyezi, ha korábban nem volt /b könyvtár.
A másoláskor keletkező fájlok és könyvtárak jogai ugyanazok lesznek, mint az eredeti állományoké, 0777 értékkel végzett ÉS művelet után és a felhasználó umask-jával módosítva (kivéve, ha a −p opció meg van adva). (A rekurzív másolás idejére az újonnan keletkezett könyvtárak átmenetileg a végleges mód helyett az S_IRWXU (0777) értékkelel és VAGY művelettel képzett módot kapják meg, hogy a processz olvasni, írni és keresni tudja ezeket a könyvtárakat).
Semmi nem történik akkor, ha egy fájlt önmagába másolunk (kivéve azt, hogy valószínűleg hibaüzenetet kapunk). Ha egy létező másik fájlba másolunk, az az ’open(path, O_WRONLY | O_TRUNC)’ hívással lesz megnyitva. Új fájlba másolás esetén az állomány az ’open(path, O_WRONLY | O_CREATE, mód)’ segítségével lesz létrehozva. Amennyiben ez sikertelen, a fájl már létezett; ha a -f opció lett megadva, a cp megpróbálja törölni a meglévő fájlt (vagy megszüntetni a linkelését), majd ha ez lezajlik, új fájlként végzi el rajta a másolást.
POSIX OPCIÓK
A POSIX négy és fél opciót ismer:
−f |
A létező fájlok törlése, amennyiben szükséges (lásd feljebb). | ||
−i |
A létező célfájlok felülírására rákérdez. (A kérdést az stderr−re írja, a választ az stdin−ről olvassa be. Csak megerősítő válasz esetén másol.) | ||
−p |
Megőrzi az eredeti fájl tulajdonosát, csoportját, jogosultságait (beleértve a setuid és setgid biteket), az utolsó módosítás valamint az utolsó hozzáférés idejét. Ha a tulajdonos és csoport duplikálása sikertelen, a setuid és setgid bitek törlődnek. (Megjegyzendő, hogy ezután az eredeti és a másolat utolsó hozzáférési ideje eltérhet, mivel a másolás művelete a forrásfájlhoz való hozzáférést takar). | ||
−R |
A könyvtárakat rekurzívan másolja és a megfelelő műveleteket végzi az olyan objektumokon, amelyek nem hagyományos fájlok illetve könyvtárak. (Így egy FIFO vagy speciális fájl másolata is FIFO vagy speciális fájl lesz). | ||
−r |
A könyvtárakat rekurzívan másolja, illetve valamilyen nem specifikált műveletet végez az olyan objektumokon, amelyek nem hagyományos fájlok illetve könyvtárak. (Ezért lehetséges és voltaképp támogatott a −r opció használata a −R szinonimájaként, de nem lehet kizárni, hogy a cp jelenlegi GNU verziója (lásd lentebb) ostobán viselkedik az ilyen esetekben.) | ||
−− |
Lezárja az opciók listáját. |
GNU LEÍRÁS
Általában véve, a fájlok rögtön az olvasás után írásra kerülnek. A kivételek tekintetében lásd alább a −−sparse opciót.
Alapértelmezésben a ’cp’ nem másol könyvtárakat (lásd alább az −r opciót).
A cp általában visszautasítja a fájl önmagába való másolását, a következő kivétellel: ha a −−force és a −−backup opció van megadva, a forrás és a cél azonos és egy szokványos fájlra utal, a cp a megszokott módon egy mentésfájlt (backup) készít (a megadottak szerint egyszerűt vagy számozottat). Ez akkor hasznos, ha egyszerűen másolatot akarunk készíteni egy fájlról a módosítása elott.
GNU OPCIÓK
−a, −−archive
Amennyire csak lehetséges, megőrzi az eredeti fájlok struktúráját és jellemzőit (attributes) a másolatban. Ugyanaz, mint −dpR.
−d, −−no-dereference
A szimbolikus csatolásokat (symbolic link) szimbolikus csatolásként másolja ahelyett, hogy az általuk mutatott fájlokat másolná, továbbá megőrzi az erős csatolás (hard link) kapcsolatokat a forrásfájlok között a másolatban.
−f, −−force
A létező célfájlok törlése, rákérdezés nélkül.
−i, −−interactive
A felhasználó megkérdezése arról, hogy felülírhatók-e a létező célfájlok.
−l, −−link
Erős csatolások (hard link) létrehozása a nem könyvtár állományok másolása helyett.
−p, −−preserve
Megőrzi az eredeti fájl tulajdonosát, csoportját, jogosultságait és időbélyegeit.
−P, −−parents
A célfájlok nevének kialakítása a következőképpen történik: a célkönyvtár neve egy perjellel (/), majd a forrásfájl(ok) nevével lesz kiegészítve. A cp−nek átadott utolsó argumentum egy létező könyvtár neve kell legyen. Például a ’cp −−parents a/b/c existing_dir’ parancs az a/b/c fájlt existing_dir/a/b/c -be másolja, létrehozva az összes hiányzó köztes könyvtárat.
−r |
A könyvtárak rekurzív másolása. A nem könytár és nem szimbolikus link fájlokat (pl. FIFO-k és speciális fájlok) reguláris fájlként másolja. Ez azt jelenti, hogy minden forrásból megpróbálja olvasni az adatokat és a célba írni. Így, ezzel az opcióval a ’cp’ nem meghatározható módon elakadhat egy FIFO vagy a /dev/tty olvasásakor. (Ez egy hiba. Ez azt jelenti, hogy kerülni kell a −r használatát és a −R−et érdemes választani akkor, amikor a másolt struktúra tartalmával nem vagyunk tisztában. Egy ismeretlen eszközfájl (például scanner) megnyitása váratlan hatással lehet a hardverre.) |
−R, −−recursive
A könyvtárakat rekurzívan másolja, megőrizve a nem könyvtár fájlokat (lásd fentebb a −r opciót).
−−sparse= MIKOR
Egy ’ritka fájl’ ’lyukakat’ tartalmaz - nulla bájtok sorozatát, amelyek nem foglalnak fizikai diszk-blokkokat; a ’read’ rendszerhívás ezeket nullaként olvassa. Ez egyrészt jelentős helyet takaríthat meg, másrészt növeli a sebességet, mivel számos bináris állomány tartalmaz sok folyamatos nulla bájtot. Alapértelmezésben a cp egy durva heurisztikus módszerrel megtalálja a lyukakat a bemeneti fájlokban és a megfelelő kimeneti állományt is ritkává teszi.
A MIKOR érték a következő lehet:
auto |
Ez az alapviselkedés: a kimeneti fájl ritka, ha a bemeneti is az. | ||
always |
A kimeneti fájl mindig ritka. Ez olyankor hasznos, ha az inputfájlt tartalmazó fájlrendszer nem támogatja a ritka állományokat, a fogadó fájlrendszer azonban igen. | ||
never |
A kimeneti fájl sohasem ritka. Ha találsz alkalmazást erre az opcióra, szóljál nekünk is. |
−s, −−symbolic-link
A nem-könytár fájlokról másolat helyett szimbolikus csatolást hoz létre. Minden forrásfájlnév abszolút kell legyen (azaz ’/’-rel kezdődjön) hacsak nem a célfájlok az aktuális könyvtárban vannak. Ez az opció hibaüzenetet eredményez olyan rendszerekben, amelyek nem támogatják az szimbolikus csatolásokat.
−u, −−update
Nem másolja azokat a nem-könyvtár fájlokat, amelyeknek azonos vagy újabb módosítási idővel rendelkező célfájlja létezik.
−v, −−verbose
Kiírja minden fájl nevét, mielőtt másolná.
−x, −−one-file-system
Átlépi azokat az alkönytárakat, amelyek más fájlrendszerekben vannak, mint az, amelyben a másolás elkezdődött.
GNU MENTÉSI (BACKUP) OPCIÓK
Szükség
esetén az olyan programok GNU verziói, mint
pl. a cp, mv, ln, install
és patch, mentést fognak végezni
az olyan fájlokról, amelyek
felülíródnak, megváltoznak vagy
törlődnek. A mentés
szükségességét a -b opció
jelzi. Azt, hogy a mentésfájlok nevét
hogyan kell képezni, a -V opció adja meg.
Abban az esetben, ha a mentésfájl nevét
az eredeti névhez egy utótag
toldásával kell képezni, a -S
kapcsolóval lehet kijelölni az utótagot.
−b, −−backup
Mentést készít azokról a fájlokról, amelyek felülíródnak vagy törlődnek.
−S UTÓTAG, −−suffix=UTÓTAG
Minden mentésfájl nevének végéhez hozzáfűzi a UTÓTAG−ot. Ha ez az opció nincsen megadva, a SIMPLE_BACKUP_SUFFIX környezeti változó értékét használja. Amennyiben a környezeti változó sem adott, a végződés ’~’ lesz.
−V MÓD, −−version-control=MÓD
Megadja, hogy a mentések hogyan lesznek elnevezve. A MÓD argumentum lehet ’numbered’ (vagy ’t’), ’existing’ (vagy ’nil’) vagy ’never’ (vagy ’simple’). Ha ez az opció nincsen megadva, akkor a VERSION_CONTROL környezeti változó értékét használja. Ha VERSION_CONTROL/-nak nincs értéke, az alapértelmezett mentési típus az ’existing’.
Ez az
opció megfelel az Emacs ’version-control’
változójának. A MÓD
lehetséges értékei
(egyértelmű rövidítések
elfogadva):
’t’vagy’numbered’
Mindig sorszámozott mentés készül.
’nil’vagy’existing’
Sorszámozott biztonsági mentést készít azokról a fájlokról, melyeknek már van, a többiekről pedig egyszerű mentést.
’never’vagy’simple’
Mindig egyszerű mentés készül.
SZABVÁNYOS GNU OPCIÓK
−−help |
Használati útmutatót ír a szabványos kimenetre, majd kilép. |
−−version
A program verziójáról ír ki információt a szabványos kimenetre, majd kilép.
−− |
Lezárja az opciók listáját. |
KÖRNYEZET
A LANG, LC_ALL, LC_COLLATE, LC_CTYPE és LC_MESSAGES környezeti változók a szokásos jelentéssel rendelkeznek. A GNU verzióban a SIMPLE_BACKUP_SUFFIX és a VERSION_CONTROL változók a fent leírt módon szabályozzák a mentésfájlok elnevezését.
MEGFELELŐSÉG
POSIX 1003.2
MEGJEGYZÉSEK
Ez az oldal azt
a cp−t írja le, ami a fileutils-4.0
csomagban található; más
változatok némileg eltérhetnek.
Javításokat és
kiegészítéseket az aeb [AT] cwi.nl
címre lehet küldeni (angolul).
A hibákat a fileutils-bugs [AT] gnu.edu
címen lehet jelenteni (angolul).
MAGYAR FORDÍTÁS
Horváth
András <horvatha [AT] rs1.hu>
Magyari Miklós <magyari [AT] freemail.hu>