rsync: соединение исключает и включает фильтры

[116018] Символьные устройства могут быть созданы модулями ядра (или самим ядром). При создании устройства создатель предоставляет указатели на функции, которые реализуют обработку стандартных вызовов, таких как open, read и т.д. Затем ядро Linux связывает эти функции с символьным устройством, поэтому, например, когда пользовательское приложение вызывает функцию read() в файле символьного устройства, это приводит к syscall'у, а затем ядро направляет этот вызов на функцию чтения, указанную при создании драйвера. Пошаговое руководство по созданию символьного устройства [116377] здесь [116378], вы можете создать пример проекта и пройти через него с помощью отладчика, чтобы понять, как создается объект устройства и когда вызываются обработчики[116019].
2
16.12.2014, 00:28
1 ответ

Орден - включает и - исключать параметры .

Вы сначала включаете все *. PDF файлы, более позднее исключение * Web * .pdf Никогда не применяется из-за этого. Примечание также, что включают в себя / исключать шаблоны, применяемые к именам узла (файлы, каталоги и т. Д.), а не на исходные данные, если у вас нет / или ** в шаблоне; Таким образом, исключая * Web * .pdf не будет исключать ... Web ... / ... PDF В любом случае.

Если вы хотите, чтобы все PDF, но не соответствующие каталогам * Web * , то это должно работать:

rsync -rv --exclude "*web*/" --include="*.pdf" --include="*/" --exclude="*" --prune-empty-dirs /source/ ~/destination/

Это предотвратит rsync, рекусируя в сопоставление каталогов * web * , включить Все *. PDF файлы, включают все другие каталоги, исключить все остальные файлы.

Использование ** ** в шаблоне может также работать, хотя предпочитаю вышеуказанное решение:

rsync -rv --exclude "**web*.pdf" --include="*.pdf" --include="*/" --exclude="*" --prune-empty-dirs /source/ ~/destination/
2
27.01.2020, 22:13

Теги

Похожие вопросы