rsync с «файлами из» в подстановочных знаках

[Мне пришлось изменить пример, чтобы было ясно, что есть подкаталоги.]

Предположим, я хочу воссоздать подмножество моей иерархии. для аргументов, скажем, я хочу делать резервные копии файлов в файлеlistlist.conf

# cat rsync-list ab* bb* 

а также

 # find . . ./abc ./abc/file-in-abc ./abd ./abd/file-in-abd ./aca ./bba ./bbc ./bca ./rsync-list 

Я бы надеялся, что

 rsync -arv --include-from=rsync-list --exclude='*' . /somewhere-else 

воссоздает abc, abd, bba и bbc. проблема в том, что он не спускается в каталоги ab *, поэтому он не выполняет abc / file-in-abc и abd / file-in-abd. поэтому в этом смысле ab * на самом деле не является подстановочным знаком, который расширен в abc и abd, а затем rsynced.

  • Что означает все эти дополнительные данные от rsync?
  • rsync через туннель ssh
  • синхронизировать файлы рекурсивно между двумя папками, где файлы меньше 24 часов
  • Раскройте файлы, когда rsync'in
  • Rsync исключает папки
  • Rsync большой каталог, больше, чем назначения, нужно остановить и начать
  • Rsync через Rsync через cronjob
  • Как создать полный диск VPS для полного резервного копирования VPS
  • 2 Solutions collect form web for “rsync с «файлами из» в подстановочных знаках”

    В manpage перечислены эти пять вариантов:

     --exclude=PATTERN exclude files matching PATTERN --exclude-from=FILE read exclude patterns from FILE --include=PATTERN don't exclude files matching PATTERN --include-from=FILE read include patterns from FILE --files-from=FILE read list of source-file names from FILE 

    --files-from – для точных имен файлов, а --include-from – для шаблонов, поэтому вы можете попробовать это вместо этого.

    Используя include-from , вам не нужно указывать + , но вам нужно исключить все остальное. Например, учитывая:

     $ ls -v1 source image1.tiff ... image700.tiff $ cat includes image7*.tiff 

    Тогда я могу синхронизировать только image7*.tiff используя:

     rsync -aP --include-from=includes --exclude='*' source/ target 

    В manpage также говорится, что в разделе INCLUDE/EXCLUDE PATTERN RULES :

    • a '*' соответствует любому компоненту пути, но он останавливается при слэшах.
    • используйте «**» для соответствия всем, включая слэши.

    Вы можете использовать --include-from вместо --files-from если вы хотите использовать подстановочные знаки. filelist.conf должен выглядеть так:

     + /usr/lib/ld-* + /usr/bin/gcc* + /etc/passwd + /etc/nonexisting - * 

    Вам нужно указать + или - включить или исключить в файл. Правило - * в конце необходимо сделать включение правил работы, поскольку все включено по умолчанию. Не ставьте это первым или переопределяйте правила включения.

    Interesting Posts

    Не удается установить схему Ubuntu на EFI / GPT

    фильтр в «find» игнорируется при выходе, подаваемом в tar

    Почему опция -v с rm показывает записи с обратным отсчетом и обычной цитатой?

    Связывание строк, не работающих с модификаторами Control и Shift

    Контейнер Docker не раскрывает порты, когда в команде запуска docker указано –net = host

    Каков длинный идентификатор, который Linux присваивает диску в / media /?

    Создание PDF-раздаточных материалов с помощью ghostscript

    Регулярное выражение с использованием \\ vs с использованием \

    Уменьшить блокировку диска io с помощью многих устройств?

    Пробная тройная загрузка и Windows 7 больше не загружаются

    Отдельные мониторы с отдельным входом клавиатуры и мыши?

    Создание анимации GIF из файлов PNG с одновременным ограничением размера GIF

    Shell Script mktemp, каков наилучший способ создания временного именованного канала?

    Есть ли способ для стороннего приложения узнать, контролирует ли пользователь использование ЦП?

    Выберите последний файл, основанный на порядковом номере, указанном в имени файла

    Linux и Unix - лучшая ОС в мире.