cp
cp — команда Unix, призначена для копіювання файлів з одного каталогу в інші (можливо, з іншою файловою системою). Початковий файл залишається незмінним, ім'я створеного файлу може бути таким самим, як у початкового, або змінитися.
Цей документ описує системну команду cp стандарту POSIX, в системах Linux вона має додаткові опції.
Використання
Копіювати один файл в інший
- cp [ -f ] [ -H ] [ -i ] [ -p ][ -- ] SourceFile TargetFile
Копіювати файл(и) в іншу теку
- cp [ -f ] [ -H ] [ -i ] [ -p ] [ -r | -R ] [ -- ] SourceFile … TargetDirectory
Копіювати одну директорію(-ії) в іншу
- cp [ -f ] [ -H ] [ -i ] [ -p ] [ -- ] { -r | -R } SourceDirectory … TargetDirectory
Опції
-f (від англ. force) — вказує, що цільовий файл має бути вилучений, якщо він не може бути відкритий для операції запису. Видалення файлу передує кожній операції копіювання команди cp.
-P — команда cp копіює символьні зв'язки. За умовчанням команда копіює файли, на які вказують символьні зв'язки.
-i (від англ. interactive) — виводить підказку для підтвердження кожної операції перезапису. Це трапляється, коли цільовий файл або тека містять файл або теку, що перелічений в списку копіювання. Якщо ви відповісте y (англ. yes — так) або місцевим варіантом y, команда cp здійснить перезапис. Будь-яка інша відповідь вбереже цільовий файл від перезапису командою cp.
-p (від англ. preserve) — продублює наступні характеристики кожного файлу, що копіюється, у відповідному цільовому файлі або директорії:
- час останньої модифікації і час останнього доступу.
- ID користувача і групи (якщо є права на це)
- біти дозволів файлу й біти SUID та SGID.
-R (від англ. recursive) — копіює теки включно з усім їхнім змістом
Приклади
Команда робить з файлу prog.c резервну копію prog.bak в тій же теці. Якщо файлу prog.bak не існує, він створюється командою, якщо він існує, то перезаписується
cp prog.c prog.bak
Файл jones копіюється в /home/nick/clients/jones
cp jones /home/nick/clients
Щоб скопіювати файл зі збереженням дати і часу модифікації і прав доступу, дайте команду
cp -p smith smith.jr
Копіювання всіх файлів теки /home/janet/clients/ до теки /home/nick/customers/:
cp /home/janet/clients/* /home/nick/customers
Щоб скопіювати всі файли і піддиректорії в нову директорію, наберіть
cp -R /home/nick/clients /home/nick/customers
Копіюємо три файли в теку:
cp jones lewis smith /home/nick/clients
Щоб скопіювати всі програми на C з підкаталогу programs в поточну директорію, використовуємо маски:
cp programs/*.c .
Пов'язані команди
- cpio — копіювання цілої структури директорій з одного місця в інше
- tar — створення архіву файлів
- link — системний виклик на створення зв'язку на файл чи теку
- Ln_(Unix) — створення зв'язку на файл чи теку
- mv — переміщення файлу чи теки
- rm — видалення файлу чи теки
- unlink — системний виклик для вилучення system файлу чи теки
- chmod — зміна прав доступу файлу чи теки
- chown — зміна власника файлу чи теки
- chgrp — зміна групи файлу чи теки
- uucp — копіювання з unix на unix
- scp — безпечне копіювання через SSH