Утиліти CP і MV. Приклади використання.

Робота з файлами -  рутинна робота будь-якого користувача на сервері. У системах Linux і Unix копіювання, перейменування, переміщення файлів є одним з найпопулярніших і затребуваних завдань.

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

Улитіта cp

Почнемо з cp (від англ. copy) - ця утиліта командного рядка  виконує функцію копіювання файлів і директорій в межах одного поточного сервера. P.S. Якщо вам потрібно скопіювати файли між 2 серверами, можна ознайомитися з нашими статтями, присвяченими цьому питанню тут (про SCP) і тут (про Rsync).

Загальний синтаксис утиліти дуже простий і легкий у використанні:

cp опції вихідний_каталог  каталог_назначения

Де:  

Приклад 1, копіюємо файл example1.txt в папку newdata. Ключ -v використовуємо для більш докладного виведення інформації про стан копіювання. При коректному введенні, на екран має вивестися назва файлу, і куди він скопіювався.

Якщо потрібно скопіювати кілька файлів одночасно, просто перераховуємо через пробіл (без коми) файли, які потрібно скопіювати:

cp ключи файл1 файл2 файл3  каталог_назначения

Приклад 2, копіюємо два файли example1.txt і example2.txt в папку newdata.

Перейдемо до опцій утиліти cp і їх призначення, для яких цілей використовується. Тут ми виділимо часто використовувані в роботі ключі.

   - u (-update) - для копіювання тільки файлів, яких немає в каталозі призначення і тільки змінених файлів (якщо ці файли з цими назвами вже присутні в каталозі призначення).

Приклад 3, раніше на скрині вище ми копіювали 2 файли в папку newdata, спробуємо їх скопіювати знову (за умови, що ці файли не змінювалися) і додатково файл example3.txt , якого немає ще в цій папці.

Як бачимо, був скопійований лише файл example3.txt. Ця функція дуже корисна при копіюванні цілих каталогів.

   - R - для можливості копіювання каталогів.

Також часто використовується разом з ключем -r (-recursive) - для рекурсивного копіювання (копіюються всі підкаталоги і всі файли в цих підкаталогах).

Приклад 4, рекурсивно копіюємо папку data в папку newdata. Скопійована буде папка і все що в ній.

Щоб скопіювати тільки файли і підкаталоги, але не саму папку (скопійовано буде тільки те, що в папці), використовуйте ключ -T:

    -p - ключ для збереження атрибутів вихідного каталогу або файлу, такі як тимчасові мітки, права доступу, ідентифікатор власника і групи файлів, а також розширені атрибути і т.д.

   -i (-interactive) - виводить в термінал підтвердження користувачеві перед перезаписом файлу, який вже існує в каталозі призначення. Щоб підтвердити, просто вводимо "y", введення іншого будь-якого символу скасує дію.
Приклад 5, введемо команду з і без ключа.

-v - як і писалося вище, для більш докладного виведення інформації щодо виконання команди.

Утиліта mv

Тепер перейдемо до утиліти mv (від англ. move - переміщатися) - використовується для переміщення і перейменування файлів і каталогів. mv, як і cp, працює в межах поточного сервера. Відмінність в тому, що mv повністю транспортує вихідні файл в інше місце, не залишаючи за собою копії вихідного файлу на відмінну від cp.

Наведемо синтаксис двох варіантів використання утиліти:

     - переміщення файлів і каталогів

mv ключи вихідний_каталог  каталог_назначения

Приклад 6, перенесемо два файли article.txt і newfile.txt в папку data. Аналогічно, як і в cp просто перераховуємо файли без коми. Ключ -v використовуємо для надання інформації про статус переміщення файлів.

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

   - перейменування файлів і каталогів

Щоб використовувати утиліту mv для перейменування, використовуємо також дуже простий синтаксис:

mv ключи file1 file2

Де:

Приклад 7, перейменуємо файл new.txt в new1.txt.

Утиліта mv має багато опцій аналогічних з утилітою cp. Під час роботи з міцними утилітами ключі використовують не так часто, як для cp. Серед опцій можна виделювати: -v, -u, -i.

Виникли питання? Команда ГіперХост завжди готова проконсультувати і допомогти перенести файли клієнтів на наш сервер.