Porady Admina: cp
W dzisiejszym tutorialu z cyklu Porady Admina zajmiemy się poleceniem cp.
Polecenie cp (copy) to narzędzie w systemie Linux do szybkiego duplikowania plików i folderów. Niezależnie od tego, czy tworzysz kopię zapasową danych, organizujesz pliki czy udostępniasz treści, cp pozwala Ci kopiować elementy między lokalizacjami, zachowując oryginał w nienaruszonym stanie. Polecenie cp wymaga co najmniej dwóch nazw plików w swoich argumentach.
cp jest częścią pakietu coreutils.
Składnia
cp [OPCJA]... [-T] ŹRÓDŁO CEL
cp [OPCJA]... ŹRÓDŁO... KATALOG
cp [OPCJA]... -t KATALOG ŹRÓDŁO...
Opcje
-a, –archive : to samo co -dR –preserve=all
–attributes-only : bez kopiowania danych, same atrybuty
–backup[=TRYB] : robienie kopii zapasowej każdego istniejącego pliku docelowego
-b : jak –backup, ale bez podawania argumentu
–copy-contents : kopiowanie zawartości pliku specjalnego w przypadku rekursji
-d : to samo co –no-dereference –preserve=links
–debug : informacja jak plik jest kopiowany. Włącza -v
-f, –force : jeżeli istniejący plik docelowy nie daje się otworzyć, będzie skasowany i otwierany ponownie (ignorowane jeżeli użyta jest też opcja -n)
-i, –interactive : pytanie przed zamazaniem (wyłącza opcję -n)
-H : podążanie za dowiązaniami symbolicznymi w ŹRÓDLE podanymi jako argumenty polecenia
-l, –link : dowiązania zwykłe zamiast kopiowania
-L, –dereference : podążanie za wszystkimi dowiązaniami symbolicznymi w ŹRÓDLE
-n, –no-clobber : (przestarzałe) pominięcie istniejących plików
-P, –no-dereference : bez podążania za dowiązaniami symbolicznymi w ŹRÓDLE
-p : to samo co –preserve=mode,ownership,timestamps
–preserve[=LISTA_ATR] : skopiowanie podanych atrybutów
–no-preserve=LISTA_ATR : bez zachowania podanych atrybutów
–parents : użycie pełnej ścieżki źródłowej KATALOG
-R, -r, –recursive : rekursywnie kopiowanie podkatalogów
–reflink : ustawienia kopiowania CoW/clone. Zobacz poniżej.
–remove-destination : usunięcie każdego istniejącego pliku docelowego przed próbą jego otwarcia (por. z –force)
–sparse=KIEDY : sterowanie tworzeniem plików rzadkich.
–strip-trailing-slashes : skasowanie ewentualnych końcowych ukośników z nazw argumentów ŹRÓDŁOWYCH
-s, –symbolic-link : dowiązywanie symboliczne zamiast kopiowania
-S, –suffix=ROZSZERZENIE : zmiana domyślnego ROZSZERZ. kopii zapasowej
-t, –target-directory=KATALOG : skopiowanie wszystkich ŹRÓDEŁ do KATALOGU
-T, –no-target-directory : traktowanie CELU jak zwykłego pliku
–update[=AKTUALIZ] : które istniejące pliki będą aktualizowane; AKTUALIZ={all(wszystkie), none(pomiń), none-fail(pomiń z błędem), older(starsze,domyślnie)}
-v, –verbose : wyjaśnianie co się dzieje
–keep-directory-symlink : podążanie za istniejącymi łączami symbolicznymi do katalogów
-x, –one-file-system : pozostanie w jednym systemie plików
-Z : ustawienie kontekstu bezpieczeństwa podanego pliku jako typu domyślnego
–context=[KONTEKST] : jak -Z, ale jeżeli jest podany KONTEKST, ustawienie kontekstu bezpieczeństwa SELinux albo SMACK jako KONTEKSTU
Przykłady
Kopiowanie pliku 1.txt do 2.txt (jeśli plik 2.txt istnieje, zostanie nadpisany przez 1.txt)
cp 1.txt 2.txt
Kopiowanie plików do innego katalogu
cp 1.txt 2.txt 3.txt nowy-katalog/
Kopiowanie katalogu z zawartością do nowego katalogu
cp -R stary-katalog nowy-katalog
Opcja interaktywna -i zapyta przed nadpisaniem pliku lub katalogu, jeśli istnieje (2.txt)
cp -i 1.txt 2.txt
Opcja -f (force) usuwa plik (3.txt) lub katalog, który ma być nadpisany, a do którego użytkownik nie ma dostępu, następnie kopiuje plik źródłowy
cp -f 1.txt 3.txt
Kopiowanie katalogu o dużej zawartości plików z opcją -v (verbose) wyświetla postęp kopiowania
cp -vr stary-katalog nowy-katalog
Kopiowanie plików tylko z konkretnym rozszerzeniem, np. html
cp *.html nowy-katalog
Więcej informacji o poleceniu cp uzyskasz wpisując:
man cp
cp --help