'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
На знімку вище ми створили копію 'docu' і назвав його як 'новий' . Якщо в разі, (у нашому випадку це 'newdocu') вже існує, тоді він просто перепише попередній файл.
Щоб скопіювати файл в інший каталог
Ми повинні згадати шлях цільового каталогу.
На наведеному нижче знімку раніше немає «текстового» файлу. Давши команду, 'текст' файл було скопійовано в цільовий каталог, тобто 'Робочий стіл' .
архітектура мережі
Linux cp -r
Варіант 'r' за допомогою команди копіювання можна використовувати для копіювання каталогу разом із усім його вмістом із вихідного каталогу до каталогу призначення.
Синтаксис:
cp -r
приклад:
cp -r library /home/sssit/Documents
У наведеному вище прикладі ми скопіювали каталог 'бібліотека' до цільового каталогу /home/sssit/Documents . Тут увесь вміст каталогу «бібліотека», включаючи його вміст, скопійовано до каталогу призначення.
Linux Копіювання кількох файлів або каталогів
Кілька файлів або каталогів можна скопіювати в цільовий каталог одночасно. У цьому випадку метою має бути каталог. Для копіювання кількох файлів можна використовувати символи підстановки (cp *.extension), що має той самий шаблон.
Синтаксис:
cp *.
приклад:
cp *.txt /home/sssit/Documents
У наведеному вище прикладі ми скопіювали файли (файл1, файл2, файл3) з однаковим розширенням '.txt' до каталогу Документи.
Linux cp --резервне копіювання
Якщо файл, який ви хочете скопіювати, уже існує в цільовому каталозі, ви можете створити резервну копію наявного файлу за допомогою цієї команди.
Синтаксис:
cp --backup
приклад:
cp --backup file2.txt /home/sssit/Downloads
Як ви бачите вище, 'file2.txt' вже існує в каталозі призначення. Тому ми створили резервну копію цього файлу та скопіювали його в той самий каталог (з тим же ім’ям).
Тепер наш цільовий каталог, тобто «Завантаження», містить два файли з однаковою назвою (тобто «file2.txt»).
Linux cp -i
Параметр cp '-i' дозволяє вам підтвердити один раз перед перезаписом файлу.
Синтаксис:
10 з 10
cp -i
приклад:
cp -i file3.txt /home/sssit/Desktop
Як бачите, він запитує дозвіл на перезапис файлу 'file3.txt' оскільки цей файл уже існує в каталозі призначення. Тепер ви можете натиснути і щоб перезаписати файл і п щоб не перезаписати файл.
Linux cp -l
Якщо ви хочете створити жорстке посилання на файл замість копіювання цього файлу, ви можете скористатися опцією «l».
Примітка: Під час створення жорсткого посилання файлу номер inode двох файлів залишиться незмінним. Тоді як у разі копіювання номер inode змінюється.
Синтаксис:
cp -l
приклад:
cp -l file1.txt usr/
Зауважте, що ми створили жорстке посилання на файл 'file1.txt' в 'usr' . Номер Inode обох файлів однаковий.
кортеж python відсортовано
Linux cp -p
Параметр cp '-p' використовується для збереження властивостей і атрибутів файлу. Ви також можете зберегти вибрані властивості, які вам потрібні.
Синтаксис:
cp -p
приклад:
cp -p file2.txt usr/
Тепер ви можете порівняти два файли (оригінальний і скопійований) на зображенні вище, обидва мають однакові властивості.
Linux cp -u -v
Команда cp -u -v використовується, коли потрібно переконатися, що цільовий файл відсутній або не існує.
Синтаксис:
cp -u -v
приклад:
cp -u -v docc file1.txt /home/sssit/Downloads/
На зображенні вище ви бачите, що є два файли 'душ' і 'file1.txt' . Тепер ми хочемо скопіювати ці два файли в каталог «Завантажити». Але ми не знаємо, що в каталозі «Завантаження» файл «file1.txt» уже існує.
Подача команди 'cp -u -v' автоматично подбає про вже існуючий файл (file1.txt) і не перепише його.
Ця команда корисна для копіювання великих файлів.