Przejdź do zawartości

Linux/cp

Z Wikibooks, biblioteki wolnych podręczników.

Nazwa

[edytuj]

cp - kopiuje pliki i katalogi Jest to jedno z podstawowych poleceń w trybie konsolowym w systemie Linux (także Unix). Cp nie jest wbudowanym poleceniem basha, tylko osobnym programem.

Składnia

[edytuj]

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

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

Opis

[edytuj]

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ą.

Opcje

[edytuj]

-a, --archive

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.

-b [metoda], --backup[=metoda]

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).

-d, --no-dereference

Kopiuje dowiązania symboliczne jako dowiązania, zamiast kopiowania plików, na które one wskazują i zachowuje połączenia logi.

-p, --preserve

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).

-P, --parents

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/godzinanaplik rok/miesiac/dzien/godzina, tworząc wszystkie brakujące katalogi pośrednie (katalog `rok' musi istnieć przed kopiowaniem).

-r

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 skopiowa- nia /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.

-R, --recursive

Kopiuje rekurencyjnie całe poddrzewa katalogów wejściowych zachowując nie-katalogi (w przeciwieństwie do -r).

--sparse=kiedy

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:

auto Zachowanie domyślne. Plik wynikowy jest rzadki jeśli plik

-s, --symbolic-link

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.

-S przyr_kopii, --suffix=przyr_kopii

Dodaje przyrostek przyr_kopii do nazwy każdego pliku kopii zapa- sowej 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.

--target-directory=katalog

Określa katalog docelowy. Zobacz sekcja `Katalog docelowy' w fileutils(1).

-u, --update

Aktualizacja. Nie kopiuje pliku (innego niż katalog), który ma już istniejący cel o tej samej lub nowszej dacie modyfikacji.

-v, --verbose

Wypisuje nazwę każdego pliku przed jego skopiowaniem.

-V metoda, --version-control=metoda

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):

t, numbered - Zawsze tworzy numerowane kopie zapasowe.

nil, existing - Tworzy numerowane kopie zapasowe plików, które już je mają, zwykłę kopie dla reszty.

never, simple - Robi zawsze zwykłe kopie zapasowe (uzyskiwane przez dodanie przyrostka wg opcji -S).

-x, --one-file-system

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 są kopiowane.

--help

Wyświetla informację o stosowaniu programu i dostępnych opcjach, kończy działanie.