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 він завжди йде за символічними посиланнями.
--не-клацнути, -н Він не перезаписує існуючі файли (перевизначає прапор -i).
--no-dereference, -P У SOURCE він ніколи не йде за символічними посиланнями.
-стор Це еквівалентно --preserve=mode, timestamps, ownership.
--preserve[=ATTR_LIST] Він зберігає описані атрибути. Якщо можливо додаткові атрибути: all, xattr, links, context.
--no-preserve=ATTR_LIST Він не зберігає описані атрибути.
--батьки У каталозі використовується повна назва вихідного файлу.
--рекурсивний, -r, -R Він рекурсивно копіює каталоги.
--reflink[=КОЛИ] Він контролює копії CoW/клонів.
--remove-destination Він видаляє всі існуючі цільові файли перед спробою їх відкрити (на відміну від --force).
--sparse=КОЛИ Він контролює створення розріджених файлів.
--string-trailing-slashes Він видаляє кінцеві косі риски з усіх аргументів SOURCE.
--symbolic-link, -s Він створює символічні посилання, а не копіює.
--suffix=СУФІКС, -S Він замінює загальний резервний суфікс.
--target-directory=КАТАЛОГ, -t Він копіює кожен аргумент SOURCE до DIRECTORY.
--no-target-directory, -T Він розглядає DEST як загальний файл.
--оновлення, -у Копіюється, якщо вихідний файл є новішим порівняно з цільовим файлом або якщо цільовий файл не вказано.
--багатослівний, -в У ньому вказано, що саме робиться.
--one-file-system, -x Він залишається у файловій системі.
Він встановлює тип контексту безпеки SELinux цільового файлу за замовчуванням.
--context[=CTX] Це те саме, що -Z, або, якщо згадується CTX, він встановлює контекст безпеки SMACK або SELinux на CTX.
--допомога Він показує меню довідки та виходить.
--версія Він надає деталі версії та виходи.

Розріджені файли SOURCE виявляються за допомогою дешевої евристики, а відповідний файл DESR створюється розрідженим за замовчуванням. Це обрана поведінка --sparse=авто . Ми можемо описати --sparse=завжди щоб створити розріджений файл DEST, якщо файл SOURCE містить достатньо довгий порядок нульових байтів. Ми також можемо подати заявку --sparse=ніколи щоб обмежити створення розріджених файлів.

Якщо --reflink[=завжди] згадано, реалізувати спрощену копію, у якій блоки даних копіювались лише у разі зміни. Якщо це неможливо або --reflink=авто згадується, копія завершується помилкою та повертається до стандартної копії. Ми також можемо подати заявку --reflink=ніколи щоб гарантувати стандартну копію.

Щоб скопіювати файл у той самий каталог, синтаксис буде таким:

 cp 

Файл Linux cp

На знімку вище ми створили копію 'docu' і назвав його як 'новий' . Якщо в разі, (у нашому випадку це 'newdocu') вже існує, тоді він просто перепише попередній файл.

Щоб скопіювати файл в інший каталог

Ми повинні згадати шлях цільового каталогу.

На наведеному нижче знімку раніше немає «текстового» файлу. Давши команду, 'текст' файл було скопійовано в цільовий каталог, тобто 'Робочий стіл' .

архітектура мережі
Файл Linux cp

Linux cp -r

Варіант 'r' за допомогою команди копіювання можна використовувати для копіювання каталогу разом із усім його вмістом із вихідного каталогу до каталогу призначення.

Синтаксис:

 cp -r 

приклад:

 cp -r library /home/sssit/Documents 

linux cp -r

У наведеному вище прикладі ми скопіювали каталог 'бібліотека' до цільового каталогу /home/sssit/Documents . Тут увесь вміст каталогу «бібліотека», включаючи його вміст, скопійовано до каталогу призначення.

Linux Копіювання кількох файлів або каталогів

Кілька файлів або каталогів можна скопіювати в цільовий каталог одночасно. У цьому випадку метою має бути каталог. Для копіювання кількох файлів можна використовувати символи підстановки (cp *.extension), що має той самий шаблон.

Синтаксис:

 cp *. 

приклад:

 cp *.txt /home/sssit/Documents 

Linux копіює кілька файлів

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

Linux cp --резервне копіювання

Якщо файл, який ви хочете скопіювати, уже існує в цільовому каталозі, ви можете створити резервну копію наявного файлу за допомогою цієї команди.

Синтаксис:

 cp --backup 

приклад:

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

Резервне копіювання cp файлу Linux

Як ви бачите вище, 'file2.txt' вже існує в каталозі призначення. Тому ми створили резервну копію цього файлу та скопіювали його в той самий каталог (з тим же ім’ям).

Тепер наш цільовий каталог, тобто «Завантаження», містить два файли з однаковою назвою (тобто «file2.txt»).

Linux cp -i

Параметр cp '-i' дозволяє вам підтвердити один раз перед перезаписом файлу.

Синтаксис:

10 з 10
 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 обох файлів однаковий.

кортеж python відсортовано

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) і не перепише його.

Ця команда корисна для копіювання великих файлів.