whatsaper ru ÐедеÑÑкие анекдоÑÑ Ð¿Ñо ÐовоÑкÑ
Оглавление:
- Прежде чем вы начнете
- Исключить определенный файл
- Исключить конкретный каталог
- Исключить несколько файлов или каталогов
- Исключить несколько файлов или каталогов на основе шаблона
- Вывод
Rsync - это быстрая и универсальная утилита командной строки, которая синхронизирует файлы и папки между двумя местами через удаленную оболочку.
С Rsync вы можете зеркалировать данные, создавать инкрементные резервные копии и копировать файлы между системами. При копировании данных вы можете исключить один или несколько файлов или каталогов на основе их имени или местоположения.
В этом уроке мы покажем вам, как исключить файлы и каталоги с помощью rsync.
Прежде чем вы начнете
Вы должны иметь базовые знания о том, как работает rsync.
В приведенных ниже примерах мы будем использовать rsync с опцией
-a
,. Это говорит rsync о рекурсивной синхронизации каталогов, передаче специальных и блочных устройств и сохранении символических ссылок, времени модификации, группы, владельца и прав доступа.
При исключении файлов или каталогов вам необходимо использовать их относительные пути к исходному каталогу.
Существует два варианта указания файлов и каталогов, которые вы хотите исключить:
- Из командной строки, используя
--exclude
--exclude. Из файла, используя опцию--exclude-from
.
Исключить определенный файл
Чтобы исключить конкретный файл, передайте относительный путь к файлу с параметром
--exclude
.
В следующем примере файл
src_directory/file.txt
не будет передан:
rsync -a --exclude 'file.txt' src_directory/ dst_directory/
Исключить конкретный каталог
Исключение определенного каталога аналогично исключению файла, просто передайте относительный путь к каталогу параметру
--exclude
как показано ниже:
rsync -a --exclude 'dir1' src_directory/ dst_directory/
rsync -a --exclude 'dir1/*' src_directory/ dst_directory/
Исключить несколько файлов или каталогов
Чтобы исключить несколько файлов или каталогов, просто укажите несколько опций
--exclude
:
rsync -a --exclude 'file1.txt' --exclude 'dir1/*' --exclude 'dir2' src_directory/ dst_directory/
rsync -a --exclude={'file1.txt', 'dir1/*', 'dir2'} src_directory/ dst_directory/
Если число файлов и / или каталогов, которые вы хотите исключить, велико, вместо использования нескольких опций
--exclude
вы можете указать файлы и каталоги, которые вы хотите исключить, в файле и передать файл в
--exclude-from
вариант.
Команда ниже делает то же самое, что и выше:
rsync -a --exclude-from='exclude-file.txt' src_directory/ dst_directory/
исключить-file.txt
Исключить несколько файлов или каталогов на основе шаблона
С rsync вы также можете исключить файлы и каталоги на основе шаблона, соответствующего имени файла или каталога.
Например, чтобы исключить все файлы
.jpg
вы должны выполнить:
rsync -a --exclude '*.jpg*' src_directory/ dst_directory/
Немного сложнее исключить все другие файлы и каталоги, кроме тех, которые соответствуют определенному шаблону. Допустим, вы хотите исключить все остальные файлы и каталоги, кроме файлов, заканчивающихся на
.jpg
.
Одним из вариантов является использование следующей команды:
rsync -a -m --include='*.jpg' --include='*/' --exclude='*' src_directory/ dst_directory/
При использовании нескольких параметров включения / исключения применяется первое правило соответствия.
-
--include='*.jpg'
- Сначала мы.jpg
все файлы.jpg
.--include='*/'
- Затем мыsrc_directory
все каталоги в каталогsrc_directory
. Без этого rsync будет копировать только файлы*.jpg
в каталог верхнего уровня.-m
- удаляет пустые каталоги.
Другой вариант - передать вывод команды find в rsync:
find src_directory/ -name "*.jpg" -printf %P\\0\\n | rsync -a --files-from=- src_directory/ dst_directory/
-
-printf %P\\0\\n
- удалитsrc_directory/
из пути к файлу.--files-from=-
- означает включать только файлы из стандартного ввода (файлы, переданные из команды find).
Вывод
Из этого руководства вы узнали, как исключать файлы и каталоги при передаче данных с помощью Rsync. Еще много информации о Rsync можно найти на странице руководства пользователя Rsync.
Как копировать файлы и каталоги в Linux
Копирование файлов и каталогов является одной из наиболее распространенных задач, которые вы выполняете при работе в командной строке. В Linux есть несколько команд для копирования файлов, при этом cp и rsync являются наиболее широко используемыми инструментами.
Как удалить файлы и каталоги с помощью командной строки Linux
В этом руководстве мы покажем вам, как использовать команду rm для удаления файлов и каталогов, на примерах и объяснениях наиболее распространенных параметров rm.
Как переместить файлы и каталоги в Linux (команда mv)
Перемещение файлов и каталогов является одной из самых основных задач, которые вам часто приходится выполнять в системе Linux. В этом уроке мы объясним, как использовать команду mv для перемещения файлов и каталогов.