Мы запускали команды и примеры, упомянутые в этой статье, в системе Debian 10 Buster, но вы можете реплицировать их почти во всех дистрибутивах Linux.
Командная строка Linux, Терминал, легко доступна через Приложение. Поиск в лаунчере выглядит следующим образом:
Пример 1: Копирование одного файла в целевой каталог
Самое простое использование команды cp - скопировать единственный исходный файл в целевой каталог. Вот синтаксис, который вы можете использовать для этого:
$ cp исходный файл / цель / каталогПример:
В этом примере я копирую файл с именем sample_file.txt в папку "Мои документы":
Позже я проверил наличие файла в целевой папке с помощью команды ls.
Пример 2: Копирование нескольких файлов в целевой каталог
С помощью команды cp вы можете скопировать несколько файлов в целевой каталог, используя следующий синтаксис:
$ cp исходный файл1 исходный файл2 исходный файл3… / цель / каталогПример:
В этом примере я копирую два образца файлов в папку «Документы» с помощью команды cp:
Позже я проверил наличие этих файлов в целевой папке с помощью команды ls.
Пример 3: Копирование файлов в интерактивном режиме
Если файл с таким же именем существует в вашей целевой папке, вы можете использовать команду cp, чтобы запросить вас перед перезаписью целевого файла. Вы можете использовать ключ -i следующим образом:
$ cp -i исходный файл / цель / каталогПример:
В этом примере файл с именем sample_file.txt уже существует в моей папке Documents, поэтому команда cp с флагом -i запрашивает меня, хочу ли я перезаписать его. Файл будет перезаписан, если я введу y в этом запросе.
Пример 4: Копирование файлов вместе с подробным выводом
Подробный вывод показывает, что делает команда. Это можно включить в команду cp с помощью ключа -v следующим образом:
$ cp -v исходный файл / цель / каталогПример:
В следующем примере вы можете увидеть, как команда cp выводит подробный вывод при копировании команды:
Пример 5: рекурсивное копирование каталога
Использование параметра -r с командой cp рекурсивно копирует все файлы и папки в каталоге в другое место. Вот как вы можете использовать команду cp в этом сценарии:
$ cp -r каталог1 каталог2Пример:
В следующем примере вся папка 1 со всеми ее файлами будет скопирована в папку 2.
Позже я проверил содержимое папки folder2 с помощью команды ls. Папка2 теперь содержит копию исходной папки.
Пример 6: Рекурсивное копирование каталога с сохранением архива
Используя переключатель -a с командой cp, вы можете делать две вещи одновременно:
- Рекурсивно копировать файлы из каталога в другой каталог
- Сохраняйте разрешения, отметку времени, символические ссылки и все подобные свойства без изменений при копировании файлов.
Вот как вы можете использовать команду cp в этом сценарии:
$ cp -a каталог1 каталог2Пример:
В следующем примере вся папка 1 со всеми ее файлами будет скопирована в папку 2. Кроме того, файлы будут заархивированы как проверенные позже с помощью 'ls -l command'.
Пример 7: Скопируйте файл, если он новее, чем целевой файл
Иногда вы хотите скопировать файл в целевой каталог, только если он новее, чем целевой файл. Это можно сделать с помощью ключа -u с командой cp:
$ cp -u исходный файлИЛИsourcedirectory / target / directoryПример:
В этом примере я редактировал файл sample_file.txt из моей исходной папки. Эти файлы уже были скопированы в целевую папку до того, как я отредактировал файл. Это можно увидеть в следующем выводе команды ls -l:
Теперь, когда я скопировал исходную папку в целевую папку, подробный вывод подтвердил, что будет скопирован только тот файл, который был отредактирован мной.
Пример 8: Скопируйте файл, но не перезаписывайте его, если целевой файл уже существует
Вы можете указать команде cp не перезаписывать файл, если он уже существует в целевом местоположении. Это можно сделать с помощью ключа -n следующим образом:
$ cp -n исходный файл / цель / каталогПример:
В этом примере я сначала попытался скопировать файл в целевое расположение, где он уже существовал. Параметр -i подсказал мне, хочу ли я его перезаписать.
Во второй команде я добавил переключатель -n. Он проигнорировал переключатель -i, но не перезаписал уже существующий файл в целевом каталоге.
Пример 9: Создайте символическую ссылку на файл в целевом каталоге
С помощью переключателя -s в команде cp вы можете создать символическую ссылку на исходный файл в целевой папке вместо копирования исходного файла.
$ cp -s исходный файл / цель / каталогПример:
В следующем примере я создал символическую ссылку на файл sample_file.txt в целевой папке.
Позже я проверил наличие символической ссылки в целевой папке с помощью команды ls -l.
Пример 10: Создание жесткой ссылки на файл в целевом каталоге
Когда вы создаете жесткую ссылку на файл в другой папке, файл не копируется в целевую папку; вместо этого создается жесткая ссылка на исходный файл. Номер inode исходного файла и скопированной жесткой ссылки одинаков. Вот как создать жесткую ссылку:
$ cp -l исходный файл / цель / каталогПример:
В этом примере я создал жесткую ссылку на исходный файл в папке Documents.
С помощью команды ls -il я убедился, что и исходный файл, и жесткая ссылка имеют одинаковые номера inode.
Это все, что вам нужно было знать, чтобы освоить команду cp в Linux. Используя комбинацию этих переключателей, вы можете сделать копирование файлов более настраиваемым.