Команда Cp в Linux (Копирование файлов)

Cp Command in Linux (Copy Files)

22 Апреля 2020 | Терминал

В этой статье мы объясним, как использовать cp команду.

Команда Cp в Linux (Копирование файлов)

При работе в системах Linux и Unix копирование файлов и каталогов является одной из самых распространенных задач, которые вы выполняете ежедневно.

cp утилита командной строки для копирования файлов и каталогов в системах Unix и Linux

Как использовать 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 в /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 утилиту.



    Комментарии

    Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

Загрузка комментариев...