Как копировать файлы и каталоги в Linux
Как копировать файлы и каталоги в Linux
How to Copy Files and Directories in Linux
Чтобы иметь возможность копировать файлы и каталоги, у вас должны быть как минимум права на чтение исходного файла и права на запись в целевой каталог.

Копирование файлов и каталогов является одной из наиболее распространенных задач, которые вы выполняете при работе в командной строке. В Linux есть несколько команд для копирования файлов с cp
и rsync
является наиболее широко используемыми инструментами.
Чтобы иметь возможность копировать файлы и каталоги, у вас должны быть как минимум права на чтение исходного файла и права на запись в целевой каталог.
Копирование файлов с помощью cp
команды
В операционных системах Linux и Unix cp
команда используется для копирования файлов и каталогов.
Самый простой вариант использования - скопировать файл в текущем рабочем каталоге. Например, чтобы скопировать файл с именем file.txt
в файл с именем file_backup.txt
в текущем каталоге , вы должны выполнить следующую команду:
cp file.txt file_backup.txt
Если целевой файл существует, он будет перезаписан. Чтобы получить запрос на подтверждение перед перезаписью файлов, используйте -i
опцию.
cp -i file.txt file_backup.txt
По умолчанию при использовании cp
команды для копирования файла новый файл будет принадлежать пользователю, выполняющему команду. Используйте -p
опцию, чтобы сохранить режим файла, владельца и метки времени :
cp -p file.txt file_backup.txt
Еще одна полезная опция -v
. При использовании этой опции команда печатает, что делается:
cp -v file.txt file_backup.txt
'file.txt' -> 'file_backup.txt'
Скопируйте файл в каталог
Чтобы скопировать файл в каталог, укажите абсолютный или относительный путь к каталогу. Если каталог назначения опущен, файл копируется в текущий каталог.
В следующем примере мы копируем файл file.txt
в /backup
каталог:
cp file.txt /backup
Если в качестве места назначения указано только имя каталога, то скопированный файл будет иметь то же имя, что и исходный файл.
Если вы хотите скопировать файл под другим именем, вам нужно указать желаемое имя файла:
cp file.txt /backup/new_file.txt
Команда выше скопирует файл в указанный каталог как new_file.txt
.
Скопируйте несколько файлов
Для одновременного копирования нескольких файлов и каталогов укажите имена исходных файлов и каталогов, а затем конечный каталог в качестве последнего аргумента:
cp file.txt dir file1.txt file2.txt dir1
При копировании нескольких файлов местом назначения должен быть каталог.
Команда cp также позволяет использовать сопоставление с образцом. Например, чтобы скопировать все .png
файлы из текущего каталога в /backup
каталог, вы должны использовать:
cp *.png /backup
Копирование каталогов с помощью cp
команды
Чтобы скопировать каталог, включая все его файлы и подкаталоги, используйте параметр -R
или -r
. В следующем примере мы копируем каталог Pictures
в Pictures_backup
:
cp -R Pictures Pictures_backup
Команда выше создаст каталог назначения и рекурсивно скопирует все файлы и подкаталоги из источника в каталог назначения.
Если целевой каталог уже существует, сам исходный каталог и все его содержимое будут скопированы в целевой каталог. Чтобы скопировать только файлы и подкаталоги, но не целевые каталоги, используйте -T
параметр:
cp -RT Pictures Pictures_backup
Параметры, используемые при копировании файлов, также можно использовать при копировании каталога. Основное отличие заключается в том, что при копировании каталогов необходимо использовать эту -R
опцию.
Копирование файлов и каталогов с помощью rsync
команды
rsync
это быстрая и универсальная утилита командной строки, которая синхронизирует файлы и каталоги между двумя местоположениями. Он может быть использован для копирования файлов в локальные и удаленные места.
rsync
включает в себя ряд параметров, которые контролируют каждый аспект его поведения. Наиболее полезный вариант - -a
это рекурсивное копирование каталогов, передача специальных и блочных устройств, сохранение символических ссылок, времени модификации, группы, владельца и разрешений.
Чтобы скопировать один файл из одного места в другое, вы должны выполнить следующую команду:
rsync -a file.txt file_backup.txt
Если целевой файл существует, он rsync
будет перезаписан.
Эту же команду можно использовать для копирования каталога:
rsync -a /var/www/public_html/ /var/www/public_html_backup/
угрожает исходным каталогам, которые заканчиваются косой чертой по-
rsync /
другому. Если вы добавите косую черту в исходный каталог, команда скопирует только содержимое исходного каталога в целевой каталог. Если завершающий слеш опущен, rsync
будет скопирован исходный каталог в целевой каталог. Самый безопасный вариант - всегда включать косую черту /
как в пункте назначения, так и в источнике.
Чтобы узнать больше о rsync
проверке следующих статей:
- Как использовать Rsync для локальной и удаленной передачи данных и синхронизации
- Как исключить файлы и каталоги с помощью Rsync
Вывод
В этом руководстве мы показали вам , как копировать файлы и каталоги в Linux и Unix системах , основанных на использовании cp
и rsync
утилиты.