Це команда cpposix, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн емулятор Windows або онлайн емулятор MAC OS
ПРОГРАМА:
ІМ'Я
cp — копіювати файли
СИНТАКСИС
cp [−Pfip] вихідний файл цільовий_файл
cp [−Pfip] вихідний файл... мета
cp −R [−H|−L|−P] [−фіп] вихідний файл... мета
ОПИС
Перша форма конспекту позначається двома операндами, жоден з яких не є існуючими файлами
каталог типу. The cp утиліта повинна скопіювати вміст вихідний файл (або, якщо вихідний файл
є файлом типу символьне посилання, вміст файлу, на який посилається вихідний файл), Щоб
шлях призначення, названий цільовий_файл.
Друга форма конспекту позначається двома або більше операндами, де −Р варіант - ні
зазначено, і перша форма конспекту не застосовується. Це буде помилка, якщо така є
вихідний файл є файлом типу каталог, якщо мета не існує, або якщо мета НЕ
назвіть каталог. The cp утиліта копіює вміст кожного вихідний файл (або, якщо
вихідний файл є файлом типу символьне посилання, вміст файлу, на який посилається
вихідний файл) до шляху призначення, названого конкатенацією мета, Одинокий
характер, якщо мета не закінчився на а , і останній компонент
вихідний файл.
Третя форма конспекту позначається двома або більше операндами, де −Р опція
вказано. The cp утиліта копіює кожен файл у ієрархії файлів, що вкорінені в кожному
вихідний файл до шляху призначення, який називається так:
* Якщо мета існує і називає існуючий каталог, ім'я відповідного
шлях призначення для кожного файлу в ієрархії файлів має бути конкатенацією
мета, Одинокий символ якщо мета не закінчився на а , і
шлях до файлу відносно каталогу, що містить вихідний файл.
* Якщо мета не існує і вказано два операнди, ім'я відповідного
шлях призначення для вихідний файл має бути мета; ім'я відповідного
шлях призначення для всіх інших файлів в ієрархії файлів має бути конкатенацією
of мета, а символ і шлях до файлу щодо вихідний файл.
Це буде помилкою, якщо мета не існує і вказано більше двох операндів, або
if мета існує і не називає каталог.
У наступному описі термін dest_file посилається на файл, названий файлом
шлях призначення. Термін вихідний файл посилається на файл, який копіюється, чи
вказано як операнд або файл у ієрархії файлів, що вкорінені в a вихідний файл операнд. Якщо
вихідний файл є файлом типу символьне посилання:
* Якщо −Р варіант не вказано, cp повинні вживати дії на основі типу і
вміст файлу, на який посилається символьне посилання, а не символічне посилання
сама по собі, якщо не −П був вказаний варіант.
* Якщо −Р був вказаний варіант:
-- Якщо немає жодного з варіантів −H, −Л, ні −П були вказані, не вказано, які з
−H, −Лабо −П буде використовуватися за замовчуванням.
-- Якщо −H був вказаний варіант, cp повинні вживати дії на основі типу і
вміст файлу, на який посилається будь-яке символьне посилання, зазначене як a вихідний файл
операнд.
-- Якщо −Л був вказаний варіант, cp повинні вживати дії на основі типу і
вміст файлу, на який посилається будь-яке символьне посилання, зазначене як a вихідний файл
операнд або будь-які символічні посилання, які зустрічаються під час обходу ієрархії файлів.
-- Якщо −П був вказаний варіант, cp копіює будь-яке символічне посилання, зазначене як a
вихідний файл операнд і будь-які символічні посилання, які зустрічаються під час обходу файлу
ієрархії, і не повинні переходити за жодними символічними посиланнями.
Для кожного вихідний файл, необхідно зробити наступні кроки:
1 Якщо вихідний файл посилається на той самий файл, що й dest_file, cp може написати діагностику
повідомлення стандартної помилки; це більше нічого не робитиме вихідний файл і піду далі
до будь-яких файлів, що залишилися.
2 Якщо вихідний файл має тип каталогу, слід виконати наступні кроки:
а. Якщо −Р варіант не вказано, cp написати діагностичне повідомлення
стандартна помилка, більше нічого не робити вихідний файл, і перейдіть до будь-якого, що залишилося
файли.
б. Якщо вихідний файл не вказано як операнд і вихідний файл це точка або точка-крапка,
cp більше нічого не робитиму вихідний файл і перейдіть до файлів, що залишилися.
c. Якщо dest_file існує, і це тип файлу, не визначений системними інтерфейсами
том POSIX.1‐2008, поведінка визначається реалізацією.
d. Якщо dest_file існує і не належить до каталогу типу, cp напишу діагностику
повідомлення стандартної помилки, більше нічого не робити вихідний файл або будь-які файли нижче
вихідний файл в ієрархії файлів і перейдіть до файлів, що залишилися.
e. Якщо каталог dest_file не існує, його потрібно створити за допомогою файлу
біти дозволу встановлені на те саме значення, що й у вихідний файл, змінений
маска створення файлу користувача, якщо −стр варіант не був зазначений, а потім
побітово включно OR'ed за допомогою S_IRWXU. Якщо dest_file не можна створити, cp повинні
написати діагностичне повідомлення до стандартної помилки, більше нічого не робити вихідний файл,
і перейдіть до файлів, що залишилися. Не вказано, якщо cp намагається скопіювати файли
в ієрархії файлів, укорінених вихідний файл.
f. Файли в каталозі вихідний файл повинні бути скопійовані до довідника dest_file,
виконайте чотири кроки (з 1 по 4), перераховані тут з файлами як вихідний файлs.
g. Якщо dest_file було створено, його біти дозволу файлу повинні бути змінені (за необхідності)
бути такими ж, як у вихідний файл, змінений маскою створення файлу
користувач, якщо −стр варіант не вказано.
ч. The cp утиліта більше нічого не робитиме вихідний файл і перейдіть до будь-якого, що залишилося
файли.
3 Якщо вихідний файл має тип звичайного файлу, необхідно виконати наступні кроки:
а. Поведінка невизначена, якщо dest_file існує і був написаний попереднім
крок. Інакше, якщо dest_file існує, необхідно зробити наступні кроки:
я Якщо −i дієвий варіант cp утиліта напише підказку до
стандартна помилка і прочитати рядок зі стандартного введення. Якщо відповідь є
не ствердно, cp більше нічого не робитиму вихідний файл і переходьте до будь-якого
файли, що залишилися.
ii. Дескриптор файлу для dest_file має бути отримано шляхом виконання дій
еквівалентно відкрити() функція, визначена в томі системних інтерфейсів
POSIX.1‐2008 називається using dest_file в якості шлях аргумент, а порозрядний-
включно OR з O_WRONLY і O_TRUNC як відставання аргумент.
iii. Якщо спроба отримати дескриптор файлу не вдається, і файл −f варіант в
ефект, cp спробує видалити файл, виконавши еквівалентні дії
до unlink() функція, визначена в томі системних інтерфейсів
POSIX.1‐2008 називається using dest_file в якості шлях аргумент. Якщо ця спроба
вдається, cp продовжимо з кроку 3b.
б. Якщо dest_file не існує, дескриптор файлу потрібно отримати, виконавши
дії, еквівалентні до відкрити() функція, визначена в томі System Interfaces
POSIX.1‐2008, що називається використанням dest_file в якості шлях аргумент, а порозрядний-
включно АБО з O_WRONLY і O_CREAT як відставання аргумент. Дозвіл на файл
шматочки вихідний файл буде режим аргумент.
c. Якщо спроба отримати дескриптор файлу не вдається, cp напишу діагностику
повідомлення стандартної помилки, більше нічого не робити вихідний файл, і перейдіть до будь-якого
файли, що залишилися.
d. Зміст вихідний файл повинні бути записані в дескриптор файлу. Будь-яке писати
помилки спричиняють cp щоб написати діагностичне повідомлення до стандартної помилки та продовжити
до кроку 3e.
e. Дескриптор файлу має бути закритий.
f. The cp утиліта більше нічого не робитиме вихідний файл. Якщо сталася помилка запису
на кроці 3d не вказано, якщо cp продовжується з будь-якими файлами, що залишилися. Якщо ні
на кроці 3d сталася помилка запису, cp перейти до файлів, що залишилися.
4. В іншому випадку, −Р був вказаний варіант, і необхідно зробити наступні кроки:
а dest_file має бути створено з тим самим типом файлу, що і вихідний файл.
б. Якщо вихідний файл є файлом типу FIFO, біти дозволу файлу мають бути однаковими
як ті з вихідний файл, змінюється маскою створення файлу користувача, якщо −стр
варіант не вказано. В іншому випадку дозволи, ідентифікатор власника та ідентифікатор групи
dest_file визначаються реалізацією.
Якщо це створення не вдасться з будь-якої причини, cp написати діагностичне повідомлення
стандартна помилка, більше нічого не робити вихідний файл, і перейдіть до будь-якого, що залишилося
файли.
c. Якщо вихідний файл є файлом типу символічного посилання, а параметри вимагають
саме символічне посилання, на яке потрібно діяти, ім’я шляху, що міститься в dest_file повинні
бути таким самим, як ім’я шляху, що міститься в вихідний файл.
Якщо це не вдається з будь-якої причини, cp повинен написати діагностичне повідомлення відповідно до стандарту
помилка, більше нічого не робити з вихідний файл, і перейдіть до файлів, що залишилися.
Якщо реалізація передбачає додаткові або альтернативні механізми контролю доступу (див
Базові визначення, том POSIX.1-2008, розділ 4.4, Файл Тут Ви Дозволи), їх
вплив на копії файлів визначається реалізацією.
ВАРІАНТИ
Команда cp утиліта повинна відповідати тому Base Definitions POSIX.1-2008, розділ 12.2,
Утиліта синтаксис керівні вказівки.
Підтримуються такі варіанти:
−f Якщо не вдається отримати дескриптор файлу призначення, як описано в
крок 3.a.ii., спробуйте від’єднати цільовий файл і продовжуйте.
−H Виконуйте дії на основі типу та вмісту файлу, на який посилається будь-який
символічне посилання, зазначене як a вихідний файл операнд.
−i Напишіть запит на стандартну помилку перед копіюванням до будь-якого існуючого некаталогу
цільовий файл. Якщо відповідь стандартного введення ствердна, то
слід спробувати скопіювати; інакше не буде.
−Л Виконуйте дії на основі типу та вмісту файлу, на який посилається будь-який
символічне посилання, зазначене як a вихідний файл операнд або будь-які символічні посилання
зустрічається під час обходу ієрархії файлів.
−П Виконайте дії з будь-яким символічним посиланням, зазначеним як a вихідний файл операнд або будь-який інший
символічне посилання, яке зустрічається під час обходу ієрархії файлів.
−стр Продублюйте наступні характеристики кожного вихідного файлу у відповідний
цільовий файл:
1. Час останньої зміни даних і час останнього доступу. Якщо це
дублювання не вдається з будь-якої причини, cp написати діагностичне повідомлення
стандартна помилка.
2. Ідентифікатор користувача та ідентифікатор групи. Якщо це дублювання не вдається з будь-якої причини, це так
неуточнено чи cp записує діагностичне повідомлення до стандартної помилки.
3. Біти дозволу файлу та біти S_ISUID і S_ISGID. Інший,
визначені реалізацією, біти також можуть дублюватися. Якщо це дублювання
виходить з ладу з будь -якої причини, cp має написати діагностичне повідомлення до стандартної помилки.
Якщо ідентифікатор користувача або ідентифікатор групи неможливо продублювати, біти дозволу файлу
S_ISUID і S_ISGID повинні бути очищені. Якщо ці біти присутні в джерелі
файлу, але не дублюються в цільовому файлі, не вказано чи
cp записує діагностичне повідомлення до стандартної помилки.
Порядок, в якому дублюються попередні характеристики, не визначено.
Команда dest_file не видаляються, якщо ці характеристики неможливо зберегти.
−Р Скопіюйте ієрархії файлів.
Вказати більше ніж один із взаємовиключних варіантів −H, −Л та −П не буде
вважали помилкою. Останній зазначений параметр визначає поведінку
утиліта
ОПЕРАНДИ
Підтримуються такі операнди:
вихідний файл
Шлях до файлу, який потрібно скопіювати. Якщо вихідний файл операнд є '−', це буде
посилатися на файл з іменем -; реалізації не повинні розглядати його як стандарт значення
Вхід
цільовий_файл
Шлях до існуючого чи неіснуючого файлу, який використовується для виводу, коли одинарний
файл скопійовано. Якщо цільовий_файл операнд є '−', він має посилатися на файл з іменем
-; реалізації не повинні розглядати це як стандартний вихід.
мета Шлях до каталогу, який містить скопійовані файли.
STDIN
Стандартний вхід повинен використовуватися для читання рядка введення у відповідь на кожне підказку
зазначено в розділі STDERR. В іншому випадку стандартний вхід не використовуватиметься.
ВХІД ФАЙЛИ
Вхідні файли, зазначені як операнди, можуть бути будь-якого типу.
НАВКОЛИШНЄ СЕРЕДОВИЩЕ ЗМІННІ
Наступні змінні середовища мають впливати на виконання cp:
МОВА Надайте значення за замовчуванням для змінних інтернаціоналізації, які не встановлені або
нуль. (Дивіться том Base Definitions POSIX.1-2008, розділ 8.2,
Internationalization Змінні за пріоритет інтернаціоналізації
змінні, що використовуються для визначення значень категорій мовного стандарту.)
LC_ALL Якщо встановлено не порожнє значення рядка, замініть значення всіх інших
змінні інтернаціоналізації.
LC_COLLATE
Визначте місцевість для поведінки діапазонів, класів еквівалентності та мульти-
елементи порівняння символів, що використовуються в розширеному регулярному виразі, визначеному для
yesexpr ключове слово locale в LC_MESSAGES категорії.
LC_CTYPE Визначте локаль для інтерпретації послідовностей байтів текстових даних
як символи (наприклад, однобайтові на відміну від багатобайтових символів у
аргументи та вхідні файли) і поведінку класів символів, що використовуються в
розширений регулярний вираз, визначений для yesexpr ключове слово locale в
LC_MESSAGES категорії.
LC_MESSAGES
Визначте місцевий стандарт, який використовується для обробки стверджувальних відповідей, і використовуваний мовний стандарт
впливати на формат і вміст діагностичних повідомлень і підказок, на які записуються
стандартна помилка.
NLSPATH Визначте розташування каталогів повідомлень для обробки LC_MESSAGES.
АСИНХРОННИЙ ПОДІЇ
За замовчуванням.
ВИСТАВКА
Не використовується.
STDERR
Підказка повинна бути записана зі стандартною помилкою за умов, зазначених у
Розділ ОПИС. Підказка має містити шлях призначення, але його формат є
інакше не вказано. В іншому випадку стандартна помилка повинна використовуватися лише для діагностики
повідомлення
ВИХІД ФАЙЛИ
Вихідні файли можуть бути будь-якого типу.
ПОВЕРНЕНІ ОПИС
Ні.
EXIT СТАТУС
Повинні бути повернуті такі вихідні значення:
0 Усі файли успішно скопійовано.
>0 Сталася помилка.
НАСЛІДКИ OF ПОМИЛКИ
If cp передчасно припинено через сигнал або помилку, файли або ієрархії файлів можуть бути
скопійовано лише частково, а файли та каталоги можуть мати неправильні дозволи чи доступ
і час модифікації.
Команда після розділам він має інформативний.
ЗАСТОСУВАННЯ ВИКОРИСТАННЯ
Біти set-user-ID і set-group-ID явно очищаються під час створення файлів. Це
полягає в тому, щоб заборонити користувачам створювати програми, які мають для них set-user-ID або set-group-ID
під час копіювання файлів або щоб зробити файли set-user-ID або set-group-ID доступними для нових груп
користувачів. Наприклад, якщо для файлу встановлено ідентифікатор користувача, а копія має інший ідентифікатор групи
ніж джерело, нова група користувачів має дозвіл на виконання програми set-user-ID
робив раніше. Зокрема, це проблема для суперкористувачів, які копіюють дерева користувачів.
ПРИКЛАДИ
Ні.
ОБГОВОРЕННЯ
Команда −i Опція існує в системах BSD, що дає програмам і користувачам можливість уникати
випадкове видалення файлів під час копіювання. Хоча версія 4.3 BSD не підказує якщо
Стандартний вхід не є терміналом, розробники стандарту вирішили, що використовувати −i це
запит на взаємодію, тому, коли шлях призначення існує, утиліта приймає
інструкції від того, що відповідає на стандартний вхід.
Точний формат інтерактивних підказок не вказано. Тільки загальний характер
вміст підказок уточнюється, тому що реалізації можуть бути більш описовими
підказки, ніж ті, що використовуються в історичних реалізаціях. Тому додаток, що використовує
−i опція покладається на те, що система надає найбільш підходящий діалог безпосередньо з користувачем,
на основі вказаної поведінки.
Команда −стр Опція - це історична практика в системах BSD, що дублює час останніх даних
зміна та час останнього доступу. Цей том POSIX.1‐2008 розширює його для збереження
ідентифікатори користувачів і груп, а також права доступу до файлів. Ця вимога очевидна
проблеми в тому, що каталоги майже напевно змінюються після копіювання. Це
тому POSIX.1-2008 вимагає збереження часу модифікації. Заява
що порядок, в якому характеристики дублюються, невизначений, це дозволити
реалізації, щоб забезпечити максимальний рівень безпеки для користувача. Реалізація
слід враховувати очевидні проблеми безпеки, пов’язані з налаштуванням власника, групи,
і режим у неправильному порядку або створення файлів із власником, групою або режимом, відмінним від
остаточне значення.
Не уточнюється чи cp записує діагностичні повідомлення, коли ідентифікатори користувача та групи не можуть
бути встановлений через широку практику використання користувачів −стр дублювати якусь частину
характеристики файлу, байдужий до дублювання інших. Історичні реалізації
писати діагностичні повідомлення лише про помилки, крім [EPERM].
Попередні версії цього стандарту включали підтримку −р можливість копіювати файл
ієрархії. The −р варіантом є історична практика на BSD і системах, отриманих від BSD. Це
Опція більше не визначена в POSIX.1-2008, але може бути присутнім у деяких реалізаціях.
Команда −Р параметр був доданий як близький синонім до −р варіант, обраний для узгодженості с
всі інші параметри в цьому томі POSIX.1-2008, які здійснюють рекурсивний спуск до каталогу.
Різниця між −Р і видалені −р варіант полягає в лікуванні шляхом cp файлу
типи, відмінні від звичайних і каталогів. Реалізація була визначена як - варіант
оброблені спеціальні файли, щоб дозволити як історичні реалізації, так і ті, які вибрали
підтримка −р з такими ж здібностями, як −Р визначено цим томом POSIX.1‐2008. The
оригінал −р flag, з історичних причин, не обробляв спеціальні файли інакше, ніж
звичайні файли, але завжди читати файл і копіювати його вміст. З цим були очевидні проблеми
за наявності спеціальних типів файлів; наприклад, символьні пристрої, FIFO та сокети.
Якщо під час копіювання ієрархії файлів виникає збій, cp необхідно намагатися
копіювати файли, які знаходяться на одному рівні в ієрархії або вище файлу, де сталася помилка
відбулося. Не вказано, якщо cp спробує скопіювати файли під файлом, де
сталася невдача (яка ні в якому разі не може бути успішною).
Дозволи, власники та групи створених спеціальних типів файлів були навмисно залишені
як визначена реалізація. Це робиться для того, щоб системи задовольнили спеціальні вимоги (для
наприклад, що дозволяє користувачам створювати спеціальні пристрої для персонажів, але вимагає, щоб вони були
належить певній групі). Загалом, настійно рекомендується, щоб дозволи,
власник і група мають бути такими ж, як якщо б користувач запустив історію mknod, ln, Або інші
утиліта для створення файлу. Також ймовірно, що для цього потрібні додаткові привілеї
створити блок, символ або інші спеціальні типи файлів, визначені реалізацією.
Крім того, −стр параметр явно вимагає, щоб усі set-user-ID та set-group-ID
дозволи будуть відхилені, якщо не вдається встановити будь-який ідентифікатор власника або групи. Це потрібно зберегти
користувачів від ненавмисного надання спеціальних привілеїв під час копіювання програм.
При створенні звичайних файлів історичні версії cp використовувати режим вихідного файлу як
змінено маскою створення режиму файлу. Іншим вибором було б використання режиму
вихідний файл, не змінений маскою створення, або використовувати той самий режим, який буде надано
до нового файлу, створеного користувачем (плюс біти виконання вихідного файлу), а потім
змінити його за допомогою маски створення режиму файлу. За відсутності вагомих причин для змін
історичної практики вона значною мірою збереглася.
При створенні каталогів історичні версії cp використовувати режим вихідного каталогу,
плюс біти читання, запису та пошуку для власника, змінені створенням режиму файлу
маска. Це робиться для того, щоб cp може копіювати дерева, де користувач має дозвіл на читання, але
власник не робить. Побічним ефектом є те, що якщо маска створення файлу заперечує власника
дозволи, cp не вдається. Крім того, після копіювання, історичні версії cp встановити
дозволи для створеного каталогу бути такими ж, як і вихідний каталог, незмінені
маска створення файлу.
Цю поведінку було змінено таким чином cp завжди може створювати вміст
каталогу, незалежно від маски створення файлу. Після завершення копіювання дозволи
встановлені так само, як і вихідний каталог, змінений маскою створення файлу.
Ця остання зміна історичної поведінки покликана запобігти випадковому створенню користувачів
каталоги з дозволами, крім тих, які вони зазвичай встановлюють, і для узгодженості
поведінка cp при створенні файлів.
Це не вимога cp виявити спроби скопіювати файл собі; однак,
впровадження настійно заохочується зробити це. Виявлено історичні реалізації
спроба в більшості випадків.
У цьому томі POSIX.1‐2008 є два методи копіювання піддерев. Інший метод
описується як частина людина корисність (див людина). Обидва методи є історичною практикою.
Команда cp утиліта забезпечує простіший, інтуїтивно зрозумілий інтерфейс, в той час як людина пропонує штраф
детальність контролю. Кожен надає додаткову функціональність іншому; в
зокрема, людина підтримує структуру жорстких зв'язків ієрархії, в той час як cp не. Це
є наміром стандартних розробників, щоб результати були подібними (використовуючи відповідні
комбінації варіантів в обох утилітах). Не обов’язково, щоб результати були ідентичними;
здавалося, недостатній приріст додатків, щоб збалансувати складність
реалізацій, які повинні гарантувати, що результати будуть абсолютно ідентичними.
Формулювання, що дозволяє cp не копіювати каталог до визначених реалізацією типів файлів
визначений у системних інтерфейсах том POSIX.1‐2008 надається так, що
Реалізації, що підтримують символічні посилання, не повинні забороняти копіювання каталогів
до символічних посилань. Інші розширення обсягу системних інтерфейсів файлу POSIX.1‐2008
типи можуть також використовувати цю лазівку.
Майбутнє НАПРЯМКИ
Ні.
Використовуйте cpposix онлайн за допомогою служб onworks.net