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.

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 - * 

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

  • Почему rsync в сухом режиме перечисляет некоторые каталоги, а не другие?
  • пропуская копирование содержимого подкаталогов с помощью rsync
  • rsync сравнить каталоги?
  • Как правильно настроить разрешения каталога веб-сервера
  • Резервное копирование в сжатый архив на Linux
  • Копирование быстрее, чем cp?
  • Как rsync-файлы при установке USB-накопителя
  • rsync только файлы новее, чем заданная дата, с --delete
  • Возобновить перенос одного файла с помощью rsync
  • Ошибка rsync: необъяснимая ошибка (код 255) в io.c (226)
  • rsync дает «chown <...> failed: Invalid argument (22)» с общим доступом nfs
  • Инкрементное резервное копирование и восстановление резервных копий с использованием / rsync или rdiff-backup
  • Linux и Unix - лучшая ОС в мире.