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
  • Скопируйте и получите файлы с одной машины, которая связана через ssh с другим
  • Как работает опция -fuzzy для rsync?
  • извлекать инкрементные изменения в каталог
  • Как я могу дать пользователю возможность использования CAP_MKNOD?
  • Как я могу синхронизировать все PDF-файлы из одного каталога с Dropbox?
  • Синхронизация rsync
  • Сценарий для копирования файла на удаленный хост и его переименования
  • 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

    Являются ли файлы устройств реализованы драйверами устройств или ядрами ОС?

    Ошибка при построении ассоциативного массива

    Почему я могу экспортировать отображение из linux в linux?

    Удалите переднюю косую черту с помощью sed

    почему это выражение не находит пробел после даты?

    Правило iptables для доступа к Интернету

    Как передать аргументы git из PKGBUILD?

    Таблица разделов, потребляющая 32 тыс. Данных?

    Могу ли я передавать содержимое буфера обмена в браузер для просмотра?

    ssh туннелирование локального экрана на другой сервер

    Debian wheezy: супервизор (установка из repostory) не запускается автоматически при загрузке

    Не удается разрешить имена, но может пинговать адреса при подключении к маршрутизатору IPV4, все работает отлично с маршрутизатором IPV6

    Как получить имя программы, которая вызвала ошибку ввода-вывода, перенаправленную в LOG в команде nohup?

    Создание зависимости debian от версии в пакете .deb

    Как напечатать уникальное имя в UNIX с помощью команды

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