При работе в системах Linux и Unix копирование файлов и каталогов — одна из самых распространенных задач, которые вы выполняете ежедневно.
cp — это утилита командной строки для копирования файлов и каталогов в системах Unix и Linux.
В этой статье мы объясним, как использовать команду cp .
Содержание
Как использовать команду cp
Общий синтаксис команды cp следующий:
cp [OPTIONS] SOURCE... DESTINATION
SOURCE может содержать один или несколько файлов или каталогов в качестве аргументов, а аргумент DESTINATION может быть одним файлом или каталогом.
- Когда аргументы
SOURCEиDESTINATIONявляются файлами, командаcpкопирует первый файл во второй. Если файл не существует, команда создает его. - Если
SOURCEимеет несколько файлов или каталогов в качестве аргументов, аргументDESTINATIONдолжен быть каталогом. В этой ситуации файлы и каталогиSOURCEперемещаются в каталогDESTINATION. - Если аргументы
SOURCEиDESTINATIONявляются каталогами, командаcpкопирует первый каталог во второй.
Для копирования файлов и каталогов у вас должны быть как минимум права на чтение исходного файла и права записи в целевой каталог. В противном случае отображается ошибка отказа в разрешении.
Копирование файлов с помощью команды cp
Самый простой сценарий использования cp — это копирование файла в текущий рабочий каталог . Например, чтобы скопировать файл с именем file.txt в file_backup.txt вы запустите следующую команду:
cp file file_backup
или же
cp file{,_backup}
Чтобы скопировать файл в другой каталог, укажите абсолютный или относительный путь к целевому каталогу.
Если в качестве места назначения указано только имя каталога, скопированный файл будет иметь то же имя, что и исходный файл.
В следующем примере мы file.txt файл file.txt в file.txt /backup :
cp file.txt /backup
Если вы хотите скопировать файл под другим именем, вам необходимо указать желаемое имя файла. Приведенная ниже команда скопирует файл в указанный каталог как new_file.txt .
cp file.txt /backup/new_file.txt
По умолчанию, если целевой файл существует, он перезаписывается. Параметр -n указывает cp не перезаписывать существующий файл.
Чтобы заставить cp запрашивать подтверждение, используйте параметр -i .
cp -i file.txt file_backup.txt
Если вы хотите скопировать файл, только если он новее, чем место назначения, используйте параметр -u :
cp -u file.txt file_backup.txt
При копировании файла владельцем нового файла является пользователь, выполняющий команду. Используйте параметр -p чтобы сохранить режим файла, владельца и временные метки :
cp -p file.txt file_backup.txt
Другой вариант, который может быть полезен, — это -v , который указывает cp печатать подробный вывод:
cp -v file.txt file_backup.txt
'file.txt' -> 'file_backup.txt'
Копирование каталогов с помощью команды cp
Чтобы скопировать каталог, включая все его файлы и подкаталоги, используйте параметр -R или -r .
В следующем примере мы копируем каталог Pictures в Pictures_backup :
cp -R Pictures Pictures_backup
Приведенная выше команда создает целевой каталог и рекурсивно копирует все файлы и подкаталоги из источника в целевой каталог.
Если целевой каталог уже существует, сам исходный каталог и все его содержимое копируются в целевой каталог.
Чтобы скопировать только файлы и подкаталоги, но не исходный каталог, используйте параметр -T :
cp -RT Pictures Pictures_backup
Другой способ скопировать только содержимое каталога, но не сам каталог, — использовать подстановочный знак ( * ). Недостаток следующей команды является то , что он не копирует скрытые файлы и каталоги (те , начиная с точкой . ):
cp -RT Pictures/* Pictures_backup/
Все параметры, которые мы использовали в предыдущем разделе при копировании файлов, также могут быть использованы при копировании каталогов. Основное отличие в том, что при копировании каталогов. вам всегда нужно использовать параметр -R .
Копировать несколько файлов и каталогов
Чтобы скопировать сразу несколько файлов и каталогов, укажите их имена и используйте каталог назначения в качестве последнего аргумента:
cp file.txt dir file1.txt dir1
При копировании нескольких файлов местом назначения должен быть каталог.
Выводы
Копирование файлов и каталогов с помощью команды cp — простая задача. Для получения информации обо всех доступных параметрах cp введите в терминале man cp .
Для копирования файлов по сети используйте утилиты rsync и scp .
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
LIK
K
sdsad
sacsv