Введение
В ходе этой практической работы вы познакомитесь с мощной командой cp в Linux — незаменимым инструментом для управления файлами и директориями. Вы научитесь эффективно копировать данные, разберетесь в различных опциях для настройки процесса копирования и примените эти навыки в реальных сценариях. К концу занятия вы сможете уверенно использовать cp для повседневных задач по управлению файлами и создания резервных копий.
Основы работы с командой cp
Команда cp является базовой для дублирования файлов в Linux. Начнем с простого сценария, когда вам нужно создать резервную копию важного документа.
В вашей рабочей директории (~/project) находится файл с именем important_report.txt. Ваша задача — создать копию этого файла в той же директории.
Для начала проверим содержимое директории проекта:
ls ~/project
Вы должны увидеть important_report.txt в списке файлов. Не беспокойтесь, если там есть другие файлы; сейчас нас интересует только этот отчет.
Теперь создадим резервную копию:
cp ~/project/important_report.txt ~/project/important_report_backup.txt
Эта команда создает копию important_report.txt под названием important_report_backup.txt в той же папке. Разберем составные части команды:
cp: сама команда копирования.~/project/important_report.txt: исходный файл, который мы хотим скопировать. Символ~обозначает ваш домашний каталог.~/project/important_report_backup.txt: целевой файл. Мы создаем новый файл, добавив суффикс "_backup" к имени.
Чтобы убедиться, что копия успешно создана, снова выведите список файлов:
ls ~/project
Теперь вы должны увидеть и important_report.txt, и important_report_backup.txt. Если новый файл не появился, проверьте правильность написания команды cp.
Копирование файлов в другие директории
Часто возникает необходимость переместить копии файлов в другие места. Представим ситуацию, что вы наводите порядок в своей музыкальной коллекции.
Сначала проверим, существует ли папка для музыки:
ls ~/project
В списке должна быть директория music. Если вы её видите, значит, всё готово к работе.
Теперь скопируем музыкальный файл из основной директории проекта в папку с музыкой:
cp ~/project/favorite_song.mp3 ~/project/music/
Эта команда копирует favorite_song.mp3 в папку music. Разбор команды:
cp: команда копирования.~/project/favorite_song.mp3: исходный файл.~/project/music/: целевая директория. Обратите внимание на косую черту (/) в конце — она указываетcp, чтоmusicявляется папкой.
Для проверки результата загляните внутрь папки music:
ls ~/project/music
Там должен появиться файл favorite_song.mp3. Если его нет, убедитесь, что исходный файл существовал и команда была введена без ошибок.
Копирование нескольких файлов одновременно
Вы можете копировать несколько файлов одной командой, что очень удобно для групповых операций. Давайте организуем ваши документы.
Сначала убедимся в наличии папки для документов:
ls ~/project
Вы должны увидеть директорию documents.
Теперь скопируем сразу несколько текстовых файлов в эту папку:
cp ~/project/report1.txt ~/project/report2.txt ~/project/notes.txt ~/project/documents/
Эта команда копирует report1.txt, report2.txt и notes.txt в папку documents. Вот как это работает:
cp: команда копирования.~/project/report1.txt ~/project/report2.txt ~/project/notes.txt: список исходных файлов через пробел. Можно указывать любое количество файлов.~/project/documents/: конечный пункт назначения.
Проверьте результат:
ls ~/project/documents
Вы должны увидеть все три файла. Если какого-то не хватает, проверьте команду на наличие опечаток.
Использование опции -i для интерактивного копирования
При копировании файлов можно столкнуться с ситуацией, когда в целевой папке уже есть файл с таким же именем. Опция -i делает процесс интерактивным: система спросит вас перед тем, как перезаписать существующий файл.
Давайте смоделируем такую ситуацию.
Сначала посмотрим содержимое существующего файла:
cat ~/project/test_file.txt
Совет: Если вы не знакомы с командой
cat, не волнуйтесь — она просто выводит текст файла на экран, и мы разберем её позже.
Вы должны увидеть текст "Original content".
Теперь попробуем скопировать на его место другой файл с тем же именем:
cp -i ~/project/new_test_file.txt ~/project/test_file.txt
Когда появится запрос, введите y и нажмите Enter, чтобы подтвердить перезапись. Если вы передумали, введите n.
Опция -i (от слова interactive) — это мера предосторожности, предотвращающая случайную потерю данных.
Теперь снова проверьте содержимое:
cat ~/project/test_file.txt
Если вы согласились на перезапись, вы увидите "New content". В противном случае останется "Original content".
Рекурсивное копирование с опцией -r
Опция -r позволяет копировать директории вместе со всем их содержимым. Это незаменимо при создании резервных копий целых структур папок.
Давайте создадим полную копию директории веб-сайта:
cp -r ~/project/website ~/project/website_backup
Эта команда копирует папку website и всё, что в ней находится, в новую папку website_backup. Разбор параметров:
cp: команда копирования.-r: сокращение от "recursive" (рекурсивно). Указываетcpкопировать папки и их вложения.~/project/website: исходная директория.~/project/website_backup: новая директория, куда будет помещена копия.
Проверьте, всё ли скопировалось:
ls -R ~/project/website_backup
Вы увидите дерево каталогов и файлы. Опция -R у команды ls также работает рекурсивно, показывая содержимое всех подпапок.
Сохранение атрибутов файлов с опцией -p
При обычном копировании владельцем нового файла становитесь вы, а временем создания — текущий момент. Если нужно сохранить оригинальные атрибуты (время изменения, права доступа), используйте опцию -p.
Проверим это на практике.
Сначала посмотрим на атрибуты исходного файла:
ls -l ~/project/old_file.txt
Обратите внимание на дату и время.
Теперь скопируем файл, сохраняя его "метаданные":
cp -p ~/project/old_file.txt ~/project/preserved_file.txt
Опция -p (от слова preserve — сохранять) переносит время последнего изменения, время доступа и права доступа исходного файла на копию.
Сравните атрибуты обоих файлов:
ls -l ~/project/old_file.txt ~/project/preserved_file.txt
Вы увидите, что дата и время у файлов идентичны.
Использование подстановочных знаков для выборочного копирования
Подстановочные знаки (wildcards) позволяют копировать группы файлов по шаблону. Это удобно, когда нужно отобрать файлы определенного типа.
Скопируем все текстовые файлы в папку text_files:
cp ~/project/*.txt ~/project/text_files/
А теперь все PDF-файлы в папку pdf_files:
cp ~/project/*.pdf ~/project/pdf_files/
Что означает символ звездочки (*):
*.txt— любой файл, имя которого заканчивается на ".txt".*.pdf— любой файл, имя которого заканчивается на ".pdf".
Это избавляет от необходимости перечислять каждый файл вручную.
Проверьте результат:
ls ~/project/text_files
ls ~/project/pdf_files
Все соответствующие файлы должны оказаться в своих новых папках.
Резюме
В ходе этой лабораторной работы вы освоили основные приемы работы с командой cp в Linux. Теперь вы умеете:
- Копировать одиночные файлы.
- Копировать файлы в другие директории.
- Копировать несколько файлов одной командой.
- Использовать интерактивный режим с опцией
-i. - Рекурсивно копировать целые директории с помощью
-r. - Сохранять атрибуты файлов с помощью
-p. - Использовать подстановочные знаки для работы с группами файлов.
Другие полезные опции cp, которые могут вам пригодиться:
-u: копировать только если исходный файл новее целевого или если целевой файл отсутствует.-v: подробный режим (verbose), показывающий, что именно делает команда в данный момент.-n: режим "без перезаписи"; не заменять уже существующие файлы.-l: создавать жесткие ссылки вместо копирования данных.-s: создавать символические ссылки (ярлыки) вместо копирования.
Команда cp — это мощный фундамент для работы в Linux. Полученные навыки позволят вам эффективно справляться с задачами по организации файлов и резервному копированию данных.



