Scroll to navigation

CP(1) Narzędzia plikowe GNU 4.0l CP(1)

NAZWA

cp - kopiuje pliki i katalogi

SKŁADNIA

cp [opcja]... źródło przeznaczenie
cp [opcja]... źródło... katalog_docelowy

OPIS

Dokumentacja niniejsza nie jest już utrzymywana i może być niedokładna lub niekompletna. Autorytatywnym źródłem jest obecnie dokumentacja Texinfo. Dostęp do niej uzyskasz wpisując w wierszu poleceń:

pinfo cp
lub
info cp.

Ta strona podręcznika opisuje polecenie cp w wersji GNU.

cp kopiuje pliki (lub, opcjonalnie, katalogi). Kopia jest całkowicie niezależna od oryginału. Można kopiować jeden plik na inny albo też kopiować dowolną liczbą plików do katalogu docelowego. Istniejące docelowe pliki są nadpisywane.

Jeśli ostatni argument określa istniejący katalog, to cp cp kopiuje każdy z podanych plików źródłowych do tego katalogu (pod tymi samymi nazwami). W przeciwnym przypadku, gdy podano tylko dwa pliki program kopiuje pierwszy z nich na drugi. Jest błędem, jeśli ostatni argument nie jest katalogiem a podano więcej niż dwa argumenty. Zasadniczo, pliki są zapisywane tak, jak są odczytywane. Wyjątki opisano poniżej w opcji --sparse.

Domyślnie cp nie kopiuje katalogów (patrz opis opcji -r poniżej).

Ogólnie cp odmawia skopiowania pliku na ten sam plik, z następującym jednak wyjątkiem: jeśli użyto opcji --force --backup przy identycznym źródle i przeznaczeniu, odnoszących się do zwykłego pliku, cp utworzy kopię zapasową (backup) pliku (prostą lub numerowaną, w zależności od użytej opcji). Opcja ta jest przydatna do tworzenia kopii zapasowej istniejącego pliku przed jego zmianą. Zobacz `Opcje kopii zapasowych' w podręczniku fileutils(1).

OPCJE

Zachowuje w kopiach tyle ile możliwe ze struktury i atrybutów oryginalnych plików (ale nie próbuje zachować wewnętrznej struktury katalogów, tzn. ls -U może pokazywać pozycje w skopiowanym katalogu w innej kolejności). To samo co -dpR.
Tworzy kopie zapasowe tych plików, które mają być nadpisane lub usunięte. Zobacz opis opcji -V oraz sekcja `Opcje kopii zapasowych' w podręczniku fileutils(1).
Kopiuje dowiązania symboliczne jako dowiązania, zamiast kopiowania plików, na które one wskazują i zachowuje połączenia dowiązań twardych (hardlinks) pomiędzy plikami źródłowymi w kopiach.
Usuwa istniejące pliki docelowe.
Pyta czy nadpisywać istniejące pliki docelowe.
Tworzy dowiązania twarde zamiast kopii plików innych niż katalogi.
Zachowuje atrybuty (właściciela, grupę, prawa i czasy) oryginalnych plików. Przy braku tej opcji każdy z plików docelowych jest tworzony z prawami odpowiedniego pliku źródłowego minus bity ustawione w umask. Zobacz `Prawa pliku' w podręczniku fileutils(1).
Kopiuje pliki do katalogu docelowego traktując go jako macierzysty; powiela strukturę katalogów, w której były pliki źródłowe. Ta opcja tworzy nazwę każdego z plików docelowych przez dodanie do katalogu docelowego ukośnika i podanej nazwy pliku źródłowego. Ostatni argument podany cp musi być nazwą istniejącego katalogu. Na przykład, polecenie:
cp --parents miesiac/dzien/godzina rok
kopiuje plik miesiac/dzien/godzina na plik rok/miesiac/dzien/godzina, tworząc wszystkie brakujące katalogi pośrednie (katalog `rok' musi istnieć przed kopiowaniem).
Kopiuje rekurencyjnie całe poddrzewa katalogów wejściowych do katalogu docelowego. Kopiowane są wszystkie pliki inne niż katalogi i dowiązania symboliczne (tzn. nazwane potoki/FIFO i pliki specjalne) tak, jakby były zwykłymi plikami. Oznacza to próbę odczytu danych z każdego z plików źródłowych i zapisu w docelowych. Zatem, przy użyciu tej opcji cp może czekać w nieskończoność przy odczycie łącza nazwanego, póki coś innego do niego nie zapisze. Zwykle błędem jest zastosowanie `cp -r' do plików specjalnych jak potoki FIFO i inne znajdujących się w katalogu /dev. W większości przypadków `cp -r' zawiśnie próbując czytać z FIFO i plików specjalnych w rodzaju /dev/console/ i przepełni dysk docelowy jeśli użyje się go do skopiowania /dev/zero. Zamiast tego, jeśli chce się kopiować pliki specjalne, należy użyć opcji --recursive (-R). Zachowa to ich specyficzną naturę, zamiast czytania z nich w celu skopiowania zawartości.
Kopiuje rekurencyjnie całe poddrzewa katalogów wejściowych zachowując nie-katalogi (w przeciwieństwie do -r).
Określa sposób tworzenia "rzadkich" plików. Plik "rzadki" ("sparse file") zawiera "dziury" -- sekwencje zerowych bajtów, które nie zajmują żadnych fizycznych bloków na dysku; systemowa funkcja odczytu (read) czyta je jako zera. Oszczędza to znacząco miejsce na dysku jak i powiększa prędkość, gdyż wiele plików binarnych zawiera wiele kolejnych bajtów zerowych. Domyślnie cp wykrywa dziury w pliku źródłowym przy pomocy zgrubnych metod heurystycznych i tworzy odpowiedni plik wynikowy również jako rzadki. Argument kiedy opcji --sparse może mieć jedną z następujących wartości:
Zachowanie domyślne. Plik wynikowy jest rzadki jeśli plik źródłowy jest rzadki.
Zawsze tworzy rzadki plik wynikowy. Przydatne, gdy plik źródłowy przechowywany jest w systemie plików nie obsługującym plików rzadkich (najistotniejszym przykładem są systemy `efs' w SGI IRIX 5.3 i wcześniejszych), ale plik wynikowy jest w innego typu systemie plików.
Nigdy nie tworzy rzadkich plików wynikowych. Daj nam znać jeśli znajdziesz zastosowanie dla tej opcji.
Tworzy dowiązania symboliczne zamiast kopii plików innych niż katalogi. Wszystkie nazwy plików źródłowych muszą być bezwzględne (zaczynające się od `/'), chyba że pliki docelowe są w bieżącym katalogu. Opcja ta wypisuje komunikat o błędzie na systemach, które nie obsługują dowiązań symbolicznych.
Dodaje przyrostek przyr_kopii do nazwy każdego pliku kopii zapasowej wykonanego przy pomocy -b. Jeśli opcja ta nie zostanie podana, to użyta zostanie wartość zmiennej środowiskowej SIMPLE_BACKUP_SUFFIX. Jeśli ona również nie jest określona, to użyty zostanie domyślny znak `~', jak w Emacsie.
Określa katalog docelowy. Zobacz sekcja `Katalog docelowy' w fileutils(1).
Aktualizacja. Nie kopiuje pliku (innego niż katalog), który ma już istniejący cel o tej samej lub nowszej dacie modyfikacji.
Wypisuje nazwę każdego pliku przed jego skopiowaniem.
Zmienia typ kopii zapasowych wykonywanych za pomocą -b. Jeśli opcja ta nie zostanie podana, to użyta zostanie wartość zmiennej środowiskowej VERSION_CONTROL. Jeśli nie zdefiniowano również VERSION_CONTROL to użyta zostanie domyślny typ kopii zapasowej: `existing'.

Opcja ta odpowiada zmiennej `version-control' Emacsa: używane są te same wartości dla typu kopii. Rozpoznają także bardziej opisowe synonimy. Prawidłowe wartości to (unikalne skróty są dopuszczalne):

Zawsze tworzy numerowane kopie zapasowe.
Tworzy numerowane kopie zapasowe plików, które już je mają, zwykłę kopie dla reszty.
Robi zawsze zwykłe kopie zapasowe (uzyskiwane przez dodanie przyrostka wg opcji -S).
Pomija podkatalogi, które znajdują się na innym systemie plików niż ten, na którym rozpoczęło się kopiowanie. Jednak katalogi stanowiące punkty montowania kopiowane.
Wyświetla informację o stosowaniu programu i dostępnych opcjach, kończy działanie.
Wyświetla numer wersji programu i kończy działanie.

AUTOR

Napisane przez Torbjorna Granlund, Davida MacKenzie i Jima Meyering.

ZGŁASZANIE BŁĘDÓW

Błędy proszę zgłaszać, w jęz. ang., do <bug-fileutils@gnu.org>.

COPYRIGHT

Copyright © 1999 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

ZOBACZ TAKŻE

cpio(1), mcopy(1), ln(1), mv(1), rm(1), chmod(1), fileutils(1).

OD TŁUMACZA

Zaktualizowano i poszerzono wg dokumentacji Texinfo dla narzędzi plikowych GNU wersji 4.01.

FSF grudzień 1999