Android

Polecenie CP w systemie Linux (kopiowanie plików)

Kurs Linux Polecenia - lekcja 7 - Kopiowanie i przenoszenie plików

Kurs Linux Polecenia - lekcja 7 - Kopiowanie i przenoszenie plików

Spisu treści:

Anonim

Podczas pracy w systemach Linux i Unix kopiowanie plików i katalogów jest jednym z najczęstszych zadań wykonywanych codziennie.

cp to narzędzie wiersza polecenia do kopiowania plików i katalogów w systemach Unix i Linux., wyjaśnimy, jak używać polecenia cp .

Jak korzystać z polecenia cp

Ogólna składnia komendy cp jest następująca:

cp SOURCE… DESTINATION

SOURCE może zawierać jeden lub więcej plików lub katalogów jako argumenty, a argument DESTINATION może być pojedynczym plikiem lub katalogiem.

  • Gdy oba argumenty SOURCE i DESTINATION są plikami, polecenie cp kopiuje pierwszy plik do drugiego. Jeśli plik nie istnieje, polecenie go tworzy. Gdy SOURCE zawiera wiele plików lub katalogów jako argumenty, argument DESTINATION musi być katalogiem. W tej sytuacji pliki i katalogi SOURCE są przenoszone do katalogu DESTINATION argumentami SOURCE i DESTINATION są oba katalogi, polecenie cp kopiuje pierwszy katalog do drugiego.

Aby skopiować pliki i katalogi, musisz mieć przynajmniej uprawnienia do odczytu pliku źródłowego i uprawnienia do zapisu w katalogu docelowym. W przeciwnym razie wyświetlany jest błąd odmowy uprawnień.

Kopiowanie plików za pomocą polecenia cp

Najbardziej podstawowym scenariuszem użycia cp jest skopiowanie pliku do bieżącego katalogu roboczego. Na przykład, aby skopiować plik o nazwie file.txt do file_backup.txt , file_backup.txt następujące polecenie:

cp file file_backup

lub

cp file{, _backup}

Aby skopiować plik do innego katalogu, określ bezwzględną lub względną ścieżkę do katalogu docelowego.

Gdy jako lokalizację docelową podana jest tylko nazwa katalogu, skopiowany plik ma taką samą nazwę jak plik oryginalny.

W poniższym przykładzie kopiujemy plik file.txt do katalogu /backup :

cp file.txt /backup

cp file.txt /backup/new_file.txt

Domyślnie, jeśli plik docelowy istnieje, jest on nadpisywany. Opcja -n mówi cp aby nie zastępował istniejącego pliku.

Aby zmusić cp do monitowania o potwierdzenie, użyj opcji -i .

cp -i file.txt file_backup.txt

cp -u file.txt file_backup.txt

Podczas kopiowania pliku nowy plik jest własnością użytkownika uruchamiającego polecenie. Użyj opcji -p , aby zachować tryb pliku, własność i znaczniki czasu:

cp -p file.txt file_backup.txt

Inną przydatną -v jest -v , która informuje cp aby wypisał pełne dane wyjściowe:

cp -v file.txt file_backup.txt

'file.txt' -> 'file_backup.txt'

Kopiowanie katalogów za pomocą polecenia cp

Aby skopiować katalog, w tym wszystkie jego pliki i podkatalogi, użyj opcji -R lub -r .

W poniższym przykładzie kopiujemy katalog Pictures do Pictures_backup :

cp -R Pictures Pictures_backup

Powyższe polecenie tworzy katalog docelowy i rekurencyjnie kopiuje wszystkie pliki i podkatalogi ze źródła do katalogu docelowego.

Jeśli katalog docelowy już istnieje, sam katalog źródłowy i cała jego zawartość są kopiowane do katalogu docelowego. Aby skopiować tylko pliki i podkatalogi, ale nie katalog docelowy, użyj opcji -T :

cp -RT Pictures Pictures_backup

Innym sposobem na skopiowanie tylko zawartości katalogu, ale nie samego katalogu, jest użycie znaku wieloznacznego ( * ). Wadą następującego polecenia jest to, że nie kopiuje on ukrytych plików i katalogów (tych zaczynających się od kropki):

cp -RT Pictures/* Pictures_backup/

Wszystkie opcje, których użyliśmy w poprzedniej sekcji podczas kopiowania plików, mogą być również użyte podczas kopiowania katalogów. Główną różnicą jest to, że podczas kopiowania katalogów. zawsze musisz użyć opcji -R .

Skopiuj wiele plików i katalogów

Aby skopiować wiele plików i katalogów jednocześnie, podaj ich nazwy i użyj katalogu docelowego jako ostatniego argumentu:

cp file.txt dir file1.txt dir1

Podczas kopiowania wielu plików miejscem docelowym musi być katalog.

Wniosek

Kopiowanie plików i katalogów za pomocą polecenia cp to proste zadanie. Aby uzyskać informacje o wszystkich dostępnych opcjach cp , wpisz man cp w swoim terminalu.

Aby skopiować pliki przez sieć, użyj narzędzi rsync i scp .

terminal cp