logo

cp команда в Linux/Unix | Файл за копиране на Linux

'cp' означава копие. Командата 'cp' се използва за копиране на файл или директория.

Въведение в командата cp

Командата cp се използва за копиране на директории и файлове. Командата съдържа три основни режима на работа, представени от типовете аргументи, показани на програмата за копиране на файл в други файлове, множество файлове в която и да е директория или за копиране на цели директории в други директории.

Освен това помощната програма приема няколко флага за опции на командния ред за детайлизиране на изпълнените операции. Двете основни спецификации са GNU cp и POSIX cp. GNU cp съдържа различни допълнителни опции на POSIX версията. Освен това командата е налична в обвивката на EFI.

Режими на работа на командата cp

Командата cp съдържа три основни режима на работа. Тези режими се завършват от броя и типа на аргументите, показани на програмата при извикване.

  • Програмата може да копира съдържанието на първия файл във втория файл, като прави втория файл, ако е необходим, когато програмата съдържа два аргумента за име на път към файлове.
  • Програмата може да копира всички изходни файлове в желаната директория, като прави всеки файл, който все още не е достъпен, когато програмата съдържа един или повече аргументи за име на път на файлове и ги преследва като аргумент за път към директория.
  • Командата cp може да копира всеки файл в изходната директория в желаната директория, правейки всички директории или файлове необходими, когато аргументите на програмата са имената на пътя за две директории. Този режим на работа се нуждае от допълнителен флаг за опция, за да представи копирането на рекурсивната директория. Източникът ще бъде копиран в местоназначението, докато се създава нова директория, ако местоназначението не съществува, ако целевата директория вече е налична.

Опции на командата cp

опция Описание
--архив, -а Това е еквивалентно на -dR --preserve=all.
--атрибути-само Не копира данните от файла, а само атрибутите.
Това е като резервно копие, но не приема никакви аргументи.
--резервно копие[=CONTROL] Той прави резервно копие на всички съществуващи целеви файлове.
--copy-contents Когато е рекурсивен, той копира специално файлово съдържание.
Това е еквивалентно на --no-dereference --preserve=links.
--сила, -е Ако съществуващ целеви файл не може да бъде отворен, изтрийте го и опитайте отново (тази опция се избягва, ако се използва и флагът -n).
--интерактивен, -и Той иска потвърждение преди презаписване (заменя предишния флаг -n).
В SOURCE следва символните връзки на командния ред.
--връзка, -л Той определя файлове с твърди връзки, а не копиране.
--дереференция, -L В SOURCE винаги следва символни връзки.
--no-clobber, -n Той не презаписва съществуващ файл (заменя флага -i).
--без дереференция, -P В SOURCE той никога не следва символични връзки.
-стр Това е еквивалентно на --preserve=mode, timestamps, ownership.
--preserve[=ATTR_LIST] Той запазва описаните атрибути. Ако е възможно допълнителни атрибути: всички, xattr, връзки, контекст.
--no-preserve=ATTR_LIST Не запазва описаните атрибути.
-- родители Под директорията той използва пълното име на изходния файл.
--рекурсивен, -r, -R Той рекурсивно копира директории.
--reflink[=КОГА] Той контролира CoW/клонинг копия.
--премахване-дестинация Той премахва всички съществуващи целеви файлове, преди да се опита да ги отвори (за разлика от --force).
--sparse=КОГА Той контролира създаването на редки файлове.
--string-trailing-slashes Той премахва крайните наклонени черти от всички аргументи SOURCE.
--символна-връзка, -s Той създава символични връзки, вместо да копира.
--suffix=СУФИКС, -S Той отменя общия резервен суфикс.
--target-directory=ДИРЕКТОРИЯ, -t Той копира всеки аргумент SOURCE в DIRECTORY.
--no-target-directory, -T Той счита DEST за общ файл.
--актуализация, -u Той копира, ако SOURCE файлът е по-нов в сравнение с целевия файл или ако целевият файл не е посочен.
--многословен, -в Уточнява какво се прави.
--една файлова система, -x Той остава във файловата система.
-СЪС Той настройва SELinux контекста за сигурност на целевия файл към типа по подразбиране.
--контекст[=CTX] Това е същото като -Z, или ако се споменава CTX, задава контекста на защита на SMACK или SELinux на CTX.
--помогне Показва помощното меню и излиза.
--версия Предоставя подробности за версията и изходи.

Разредените SOURCE файлове се намират чрез евтина евристика, а свързаният DESR файл се създава разреден по подразбиране. Това е поведението, избрано от --sparse=auto . Можем да опишем --sparse=винаги за създаване на разреден DEST файл, ако SOURCE файлът включва достатъчно дълъг ред от нула байта. Можем и да кандидатстваме --sparse=никога за ограничаване на създаването на редки файлове.

Ако --reflink[=винаги] се споменава, реализирайте олекотено копие, в което блоковете с данни са били копирани само ако са променени. Ако не е възможно или --reflink=auto се споменава, копието е неуспешно и се връща към стандартното копие. Можем и да кандидатстваме --reflink=никога за да се гарантира прилагането на стандартно копие.

За да копирате файл в същата директория синтаксисът ще бъде,

 cp 

Linux файл cp

В горната моментна снимка създадохме копие на 'документ' и го нарече като 'ново' . Ако в случай, (в нашия случай това е 'newdocu') вече съществува, тогава той просто ще запише по-ранния файл.

За да копирате файл в друга директория

Трябва да споменем пътя на целевата директория.

В моментната снимка по-долу по-рано няма „текстов“ файл. След подаване на командата, 'текст' файлът е копиран в целевата директория, т.е 'Работен плот' .

Linux файл cp

Linux cp -r

опция 'р' с командата copy може да се използва за копиране на директория, включително цялото й съдържание от изходна директория в целевата директория.

Синтаксис:

osi референтен модел в мрежите
 cp -r 

Пример:

 cp -r library /home/sssit/Documents 

linux cp -r

В горния пример сме копирали директория 'библиотека' към целевата директория /home/sssit/Документи . Тук цялото съдържание на директорията „библиотека“, включително нейното съдържание, е копирано в целевата директория.

Linux Копиране на множество файлове или директории

Множество файлове или директории могат да бъдат копирани в целева директория наведнъж. В този случай целта трябва да е директория. За да копирате няколко файла, можете да използвате заместващи знаци (cp *.разширение) със същия модел.

Синтаксис:

 cp *. 

Пример:

 cp *.txt /home/sssit/Documents 

Linux копира множество файлове

В горния пример копирахме файлове (файл1, файл2, файл3) със същото разширение '.текст' към директория Документи.

Linux cp --backup

Ако файлът, който искате да копирате, вече съществува в целевата директория, можете да архивирате съществуващия файл с помощта на тази команда.

Синтаксис:

 cp --backup 

Пример:

най-красивата усмивка
 cp --backup file2.txt /home/sssit/Downloads 

Архивиране на cp файла на Linux

Както можете да видите по-горе, 'file2.txt' вече съществува в целевата директория. Следователно създадохме резервно копие на този файл и го копирахме в същата директория (със същото име).

Сега нашата целева директория, която е „Изтегляния“, има два файла с едно и също име (това е „file2.txt“).

Linux cp -i

Опцията cp '-i' ви позволява да потвърдите веднъж, преди да презапишете вашия файл.

Синтаксис:

 cp -i 

Пример:

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

Linux cp -i

Както можете да видите, той иска разрешение за надписване на файла 'file3.txt' тъй като този файл вече съществува в целевата директория. Сега можете да натиснете и за презаписване на файл и н да не презаписва файл.

Linux cp -l

Ако искате да създадете твърда връзка към файл, вместо да копирате този файл, можете да използвате опцията 'l'.

Забележка: При създаване на твърда връзка на файла номерът на inode на двата файла ще остане същият. Докато в случай на копиране, номерът на inode се променя.

Синтаксис:

 cp -l 

Пример:

 cp -l file1.txt usr/ 

Linux файл cp -l

Имайте предвид, че създадохме твърда връзка на файла 'file1.txt' в 'usr' . Inode номерът на двата файла е еднакъв.

как да използвате mysql workbench

Linux cp -p

Опцията cp '-p' се използва за запазване на свойствата и атрибутите на файл. Можете също да запазите избраните свойства, които искате.

Синтаксис:

 cp -p 

Пример:

 cp -p file2.txt usr/ 

Linux cp -p

Сега можете да съпоставите двата файла (оригиналния и копирания) в горната снимка, и двата имат еднакви свойства.

Linux cp -u -v

Командата cp -u -v се използва, когато искате да се уверите, че целевият файл липсва или не съществува.

Синтаксис:

 cp -u -v 

Пример:

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

Linux cp -u -v

На снимката по-горе можете да видите, че има два файла 'душ' и 'file1.txt' . Сега искаме да копираме тези два файла в директорията „Изтегляне“. Но ние не знаем, че в директорията „Изтегляния“ файлът „file1.txt“ вече съществува.

Подаване на командата 'cp -u -v' автоматично ще се погрижи за вече съществуващия файл (file1.txt) и няма да го презапише.

Тази команда е полезна при копиране на големи файлове.