logo

cp Polecenie w systemie Linux/Unix | Kopiuj plik Linuxa

„cp” oznacza kopię. Polecenie „cp” służy do kopiowania pliku lub katalogu.

Wprowadzenie do polecenia cp

Polecenie cp służy do kopiowania katalogów i plików. Polecenie zawiera trzy podstawowe tryby działania, reprezentowane przez typy argumentów pokazywane programowi w celu skopiowania pliku do innych plików, wielu plików do dowolnego katalogu lub skopiowania całych katalogów do innych katalogów.

Co więcej, narzędzie akceptuje kilka flag opcji wiersza poleceń w celu wyszczególnienia zaimplementowanych operacji. Dwie podstawowe specyfikacje to GNU cp i POSIX cp. GNU cp zawiera różne dodatkowe opcje w wersji POSIX. Polecenie jest również dostępne w powłoce EFI.

Tryby pracy polecenia cp

Polecenie cp zawiera trzy podstawowe tryby działania. Tryby te są uzupełniane na podstawie liczby i rodzaju argumentów pokazywanych programowi podczas wywoływania.

  • Program może skopiować zawartość pierwszego pliku do drugiego pliku, tworząc drugi plik, jeśli jest to konieczne, gdy program zawiera dwa argumenty w postaci nazw ścieżek do plików.
  • Program może skopiować wszystkie pliki źródłowe do żądanego katalogu, czyniąc dowolny plik niedostępnym, gdy program zawiera jeden lub więcej argumentów nazw ścieżek plików i realizując je jako argumenty ścieżki do katalogu.
  • Komenda cp może skopiować każdy plik z katalogu źródłowego do żądanego katalogu, tworząc dowolne katalogi lub pliki wymagane, gdy argumentami programu są nazwy ścieżek do dwóch katalogów. Ten tryb działania wymaga dodatkowej flagi opcji reprezentującej rekurencyjne kopiowanie katalogu. Źródło zostanie skopiowane do miejsca docelowego, natomiast jeśli miejsce docelowe nie istnieje i jest już dostępne, utworzony zostanie nowy katalog.

Opcje polecenia cp

Opcja Opis
--archiwum, -a Jest to odpowiednik opcji -dR --preserve=all.
--tylko-atrybuty Nie kopiuje danych pliku, tylko atrybuty.
-B To jest jak kopia zapasowa, ale nie akceptuje żadnych argumentów.
--kopia zapasowa[=KONTROLA] Tworzy kopię zapasową wszystkich istniejących plików docelowych.
--kopia-zawartość Kiedy jest rekurencyjny, kopiuje specjalną zawartość pliku.
-D Jest to odpowiednik --no-dereference --preserve=links.
--siła, -f Jeśli nie można otworzyć żadnego istniejącego pliku docelowego, usuń go i spróbuj ponownie (ta opcja jest pomijana, jeśli używana jest również flaga -n).
--interaktywny, -tj Prosi o potwierdzenie przed nadpisaniem (zastępuje poprzednią flagę -n).
-H W SOURCE następuje po dowiązaniach symbolicznych wiersza poleceń.
--link, -l Określa pliki z dowiązaniami twardymi, a nie kopiowanie.
--dereferencja, -L W SOURCE zawsze podąża za dowiązaniami symbolicznymi.
--no-clobber, -n Nie zastępuje żadnego istniejącego pliku (zastępuje flagę -i).
--bez odniesień, -P W SOURCE nigdy nie następuje po dowiązaniach symbolicznych.
-P Jest to odpowiednik --preserve=tryb, znaczniki czasu, własność.
--zachowaj[=ATTR_LIST] Zachowuje opisane atrybuty. Jeśli to możliwe, dodatkowe atrybuty: all, xattr, linki, kontekst.
--no-preserve=LISTA_ATTR Nie zachowuje opisanych atrybutów.
--rodzice W katalogu używa pełnej nazwy pliku źródłowego.
--rekursywny, -r, -R Rekurencyjnie kopiuje katalogi.
--reflink[=KIEDY] Kontroluje kopie CoW/klonów.
--usuń miejsce docelowe Usuwa wszystkie istniejące pliki docelowe przed próbą ich otwarcia (w przeciwieństwie do --force).
--sparse=KIEDY Kontroluje tworzenie plików rzadkich.
--ukośniki-końcowe-ciągu Usuwa końcowe ukośniki ze wszystkich argumentów SOURCE.
--link-symboliczny, -s Tworzy dowiązania symboliczne, a nie kopiuje.
--sufiks=SUFIKS, -S Zastępuje powszechny przyrostek kopii zapasowej.
--katalog-targetowy=KATALOG, -t Kopiuje każdy argument ŹRÓDŁA do KATALOGU.
--no-katalog-docelowy, -T Uważa DEST za plik ogólny.
--aktualizacja, -u Kopiuje, jeśli plik SOURCE jest nowszy w porównaniu z plikiem docelowym lub jeśli plik docelowy nie jest określony.
--verbose, -v Określa, co jest robione.
--one-system-plików, -x Pozostaje w systemie plików.
-Z Ustawia kontekst zabezpieczeń SELinux pliku docelowego na typ domyślny.
--context[=CTX] Jest takie samo jak -Z lub jeśli wspomniano o CTX, ustawia kontekst zabezpieczeń SMACK lub SELinux na CTX.
--pomoc Wyświetla menu pomocy i kończy działanie.
--wersja Zawiera szczegóły wersji i wyjścia.

Rzadkie pliki SOURCE są wyszukiwane za pomocą taniej heurystyki, a powiązany plik DESR jest domyślnie tworzony jako rozrzedzony. Jest to zachowanie wybrane przez --sparse=automatyczny . Możemy opisać --sparse=zawsze aby utworzyć rzadki plik DEST, jeśli plik SOURCE zawiera wystarczająco długi rząd zerowych bajtów. Możemy również złożyć wniosek --sparse=nigdy aby ograniczyć tworzenie rzadkich plików.

Jeśli --reflink[=zawsze] wspomniano, zaimplementuj uproszczoną kopię, w której bloki danych zostały skopiowane tylko w przypadku zmiany. Jeśli nie jest to możliwe lub --reflink=automatyczny zostanie wspomniana, kopia kończy się niepowodzeniem i powraca do kopii standardowej. Możemy również złożyć wniosek --reflink=nigdy aby zagwarantować wdrożenie standardowej kopii.

Aby skopiować plik do tego samego katalogu, składnia będzie następująca:

 cp 

Plik Linux kp

W powyższej migawce utworzyliśmy kopię „dokument” i nazwał go jako 'nowy' . Jeśli na wszelki wypadek (w naszym przypadku jest to „newdocu”) już istnieje, wówczas po prostu nadpisze wcześniejszy plik.

lista javy

Aby skopiować plik do innego katalogu

Musimy wspomnieć o ścieżce katalogu docelowego.

Na poniższym zrzucie wcześniej nie ma pliku „tekstowego”. Po wydaniu polecenia, 'tekst' plik został skopiowany do katalogu docelowego, tj 'Pulpit' .

Plik Linux kp

Linux cp -r

Opcja 'R' za pomocą polecenia copy można skopiować katalog wraz z całą jego zawartością z katalogu źródłowego do katalogu docelowego.

Składnia:

 cp -r 

Przykład:

maszynopis foreach
 cp -r library /home/sssit/Documents 

Linux cp -r

W powyższym przykładzie skopiowaliśmy katalog 'biblioteka' do katalogu docelowego /home/sssit/Dokumenty . W tym przypadku cała zawartość katalogu „biblioteka” wraz z zawartością została skopiowana do katalogu docelowego.

Linux Skopiuj wiele plików lub katalogów

Do katalogu docelowego można skopiować jednocześnie wiele plików lub katalogów. W tym przypadku celem musi być katalog. Aby skopiować wiele plików, możesz użyć symbole wieloznaczne (cp *.extension) mający ten sam wzór.

Składnia:

 cp *. 

Przykład:

 cp *.txt /home/sssit/Documents 

Linux skopiuj wiele plików

W powyższym przykładzie skopiowaliśmy pliki (plik1, plik2, plik3) mające to samo rozszerzenie '.tekst' do katalogu Dokumenty.

Linux cp – kopia zapasowa

Jeśli plik, który chcesz skopiować, już istnieje w katalogu docelowym, możesz wykonać kopię zapasową istniejącego pliku za pomocą tego polecenia.

Składnia:

niezmienna lista
 cp --backup 

Przykład:

 cp --backup file2.txt /home/sssit/Downloads 

Kopia zapasowa plików cp systemu Linux

Jak widać powyżej, „plik2.txt” już istnieje w katalogu docelowym. Dlatego utworzyliśmy kopię zapasową tego pliku i skopiowaliśmy ją do tego samego katalogu (o tej samej nazwie).

Teraz nasz katalog docelowy, czyli „Pobrane”, zawiera dwa pliki o tej samej nazwie (czyli „plik2.txt”).

Linux cp -i

Opcja cp '-i' pozwala na jednokrotne potwierdzenie przed nadpisaniem pliku.

Składnia:

 cp -i 

Przykład:

 cp -i file3.txt /home/sssit/Desktop 

Linux cp -i

Jak widać, prosi o pozwolenie na nadpisanie pliku „plik3.txt” ponieważ ten plik już istnieje w katalogu docelowym. Teraz możesz nacisnąć I aby nadpisać plik i N aby nie nadpisywać pliku.

Linux cp -l

Jeśli chcesz utworzyć twardy link do pliku zamiast go kopiować, możesz użyć opcji „l”.

Neena Gupta

Notatka: Podczas tworzenia twardego dowiązania do pliku numer i-węzła obu plików pozostanie taki sam. Natomiast w przypadku kopiowania zmienia się numer i-węzła.

Składnia:

 cp -l 

Przykład:

 cp -l file1.txt usr/ 

Plik Linux cp -l

Zauważ, że utworzyliśmy twarde łącze do pliku „plik1.txt” W „usr” . Numery i-węzłów obu plików są takie same.

Linux cp -str

Opcja cp '-p' służy do zachowania właściwości i atrybutów pliku. Możesz także zachować wybrane właściwości, które chcesz.

Składnia:

 cp -p 

Przykład:

 cp -p file2.txt usr/ 

Linux cp -str

Teraz możesz dopasować dwa pliki (oryginalny i skopiowany) na powyższym obrazku, oba mają te same właściwości.

Linux cp -u -v

Polecenie cp -u -v jest używane, gdy chcesz się upewnić, że brakuje pliku docelowego lub nie istnieje.

huśtawka w Javie

Składnia:

 cp -u -v 

Przykład:

 cp -u -v docc file1.txt /home/sssit/Downloads/ 

Linux cp -u -v

Na powyższym obrazku widać, że są dwa pliki 'prysznic' I „plik1.txt” . Teraz chcemy skopiować te dwa pliki do katalogu „Pobierz”. Nie wiemy jednak, czy w katalogu „Pobrane” istnieje już plik „file1.txt”.

Wydanie polecenia „cp -u -v” automatycznie zajmie się już istniejącym plikiem (plik1.txt) i nie będzie go nadpisywać.

To polecenie jest przydatne przy kopiowaniu dużych plików.