Android

Как копировать файлы и каталоги в Linux

HUGE EGGS Surprise Toys Challenge with Inflatable water slide

HUGE EGGS Surprise Toys Challenge with Inflatable water slide

Оглавление:

Anonim

Копирование файлов и каталогов является одной из наиболее распространенных задач, которые вы выполняете при работе в командной строке. В Linux есть несколько команд для копирования файлов, при этом cp и rsync являются наиболее широко используемыми инструментами.

Обычной практикой является использование команды 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 файл file.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 проверьте следующие статьи:

Вывод

В этом руководстве мы показали, как копировать файлы и каталоги в системах на базе Linux и Unix с помощью утилит cp и rsync .

CP rsync терминал