Продвинутые параметры копирования файлов
На этом этапе вы узнаете о некоторых полезных параметрах команды cp
, которые могут сделать ваши задачи по копированию файлов более эффективными.
Начнем с того, что вернемся в проектный каталог:
cd ~/project
Сохранение атрибутов файла с помощью параметра -p
При копировании файлов вы, возможно, захотите сохранить исходные атрибуты файла, такие как временные метки, владелец и права доступа. Параметр -p
позволяет сделать это:
cp -p data-files/apple.txt backup/apple_preserved.txt
Сравним исходный файл и сохраненную копию:
ls -l data-files/apple.txt backup/apple.txt backup/apple_preserved.txt
Вы заметите, что backup/apple_preserved.txt
имеет ту же временную метку, что и исходный файл, в то время как backup/apple.txt
(который мы скопировали ранее без параметра -p
) имеет более новую временную метку.
Создание рекурсивных копий с помощью параметра -r
Для копирования каталогов вместе с их содержимым необходимо использовать параметр -r
(рекурсивный). Создадим вложенную структуру каталогов, чтобы продемонстрировать это:
mkdir -p data-files/nested/deep
echo "This is a nested file." > data-files/nested/nested_file.txt
echo "This is a deep nested file." > data-files/nested/deep/deep_file.txt
Теперь скопируем весь каталог data-files
и его содержимое в новое место:
cp -r data-files data-files-backup
Проверим, были ли структура каталогов и файлы скопированы правильно:
find data-files-backup -type f | sort
Вы должны увидеть вывод, в котором перечислены все файлы в скопированной структуре каталогов:
data-files-backup/apple.txt
data-files-backup/grape.txt
data-files-backup/nested/deep/deep_file.txt
data-files-backup/nested/nested_file.txt
data-files-backup/orange.txt
Интерактивный режим с помощью параметра -i
При копировании файлов вы можете случайно перезаписать существующие файлы. Параметр -i
(интерактивный) запрашивает подтверждение перед перезаписью любого файла:
cp -i data-files/apple.txt backup/apple.txt
Поскольку backup/apple.txt
уже существует, вы увидите запрос, спрашивающий, хотите ли вы его перезаписать:
cp: overwrite 'backup/apple.txt'?
Вы можете ответить y
для перезаписи или n
для отмены.
Эти продвинутые параметры делают команду cp
еще более мощной и гибкой для ваших потребностей в управлении файлами.