Працюючи з Linux через термінал нерідко доводиться створювати копії файлів чи копіювати файли з однієї папки до іншої. Наприклад, це можуть бути файли конфігурацій, які використовуються для налаштування програм або просто документи користувача. У цій інструкції ми розповімо, як скопіювати файл у Linux через термінал і які команди для цього будуть потрібні. Стаття буде актуальною для будь-якого дистрибутива Linux, наприклад Ubuntu Linux або Debian
Зміст
Команда для копіювання «cp»
Синтаксис та опції команди «cp»
Для копіювання файлів у Linux через термінал використовується команда «cp» (від англ. «Copy»). Команда «cp» є утилітою командного рядка для копіювання файлів та каталогів. Вона підтримує переміщення одного або декількох файлів або папок із параметрами для створення резервних копій та збереження атрибутів.
У випадку, щоб скопіювати файл в Linux через термінал досить запровадити команду «cp» і передати їй ім'я вихідного і нового файла. Наприклад, щоб скопіювати «file.txt» у новий «newfile.txt» потрібно виконати таку команду:
cp file.txt newfile.txt
Зверніть увагу, за замовчуванням команда «cp» завжди буде перезаписувати файли, що вже є, копійованими, але цю поведінку можна змінити за допомогою опцій, які ми розглянемо в другій частині статті.
Так само виконується копіювання файлу в іншу папку. Вводимо команду «cp», вказуємо шлях до файлу і потім каталог, який його потрібно скопіювати. Наприклад, щоб скопіювати «file.txt» у каталог «folder» потрібно виконати ось таку команду:
cp file.txt folder/
Природно, якщо це необхідно, ви можете вводити повні шляхи до файлів та папок, які копіюєте командою cp. Наприклад, копіювання може виглядати так:
cp ~/temp/newfile.txt ~/temp/folder/
Ще один приклад копіювання із зазначенням повного шляху:
При необхідності можна скопіювати кілька файлів. У цьому випадку спочатку потрібно перерахувати файли, а потім вказати папку, в яку їх потрібно скопіювати. Наприклад, щоб скопіювати «file.txt» і «newfile.txt» у каталог «folder» потрібно виконати таке:
cp file.txt newfile.txt folder/
Аналогічну дію можна виконати за допомогою маски. Наприклад, для того, щоб скопіювати всі txt-документи в певну директорію можна виконати ось таку команду:
cp *.txt folder/
При копіюванні каталогів потрібно додавати параметр -R, так як без цього cp буде видавати помилку. Тому для копіювання каталогів потрібно ввести команду «cp -R» і вказати вихідний і новий каталог. Наприклад, для того, щоб скопіювати каталог «folder» у «newfolder» вам потрібно виконати ось таку команду:
cp -R folder/ newfolder/
Як і у випадку з файлами, папки можна копіювати одразу по кілька штук. Для цього потрібно ввести «cp», перерахувати папки, що копіюються, і вказати каталог призначення. Наприклад, для того, щоб скопіювати папки «folder» і «folder2» у «newbigfolder» потрібно виконати наступне:
cp -R folder/ folder2/ newbigfolder/
Синтаксис та опції команди «cp»
Команда cp має безліч опцій, за допомогою яких можна контролювати буквально всі аспекти копіювання файлів. Синтаксис команди виглядає так:
cp [опції] джерело приймач
Самих опцій у команди «cp» дуже багато, тому ми розглянемо лише найпростіші та найчастіше використовувані. З рештою опцій ви зможете ознайомитися окремо, виконавши в терміналі Linux команду «man cp».
— R , -r , --recursive
Рекурсивне копіювання каталогів.
— b
Створення резервної копії для всіх файлів, які можна перезаписати або видалити під час копіювання.
— d
Копіювання символічних посилань, а не файлів, на які вони посилаються.
— L
Копіювати файли, а не символічні посилання.
— l , --link
Створення жорстких посилань, а не їхнє копіювання.
— P, --no-dereference
Не переходити за символічними посиланнями.
— f, --force
Якщо існуючий файл призначення не може бути відкритим, видаліть його та спробуйте ще раз.
— i, --interactive
Запит перед перезаписом файлів.
— n, --no-clobber
Чи не перезаписувати файли.
— s, --symbolic-link
Створювати символічні посилання замість копіювання файлів.
— t, --target-directory=directory
Обробляти місце призначення як директорію.
— T, --no-target-directory
Обробляти місце призначення як директорію.
— u , --update
Копіювати лише якщо вихідний файл є новішим.
— v , --verbose
Виведення докладної інформації.
Як вже було сказано, для виконання команди копіювання в терміналі Linux спочатку потрібно ввести «cp», потім опції, потім джерело, і в кінці місце призначення. При цьому опції з однієї літери можна з'єднувати, наприклад замість «-r -v» можна написати просто «-rv».
Нижче ми розглянемо кілька прикладів копіювання з опціями.
cp -r folder/ newfolder/
Рекурсивне копіювання каталогів.
cp -rv folder/ newfolder/
Рекурсивне копіювання з докладною інформацією.
cp -ri folder/ newfolder/
Рекурсивне копіювання в інтерактивному режимі із запитом на перезапис.
cp -rn folder/ newfolder/
Рекурсивне копіювання без перезапису.
cp -ru folder/ newfolder/
Рекурсивне копіювання лише нових файлів.
















