Войти

Показать полную графическую версию : rsync и exclude-from


man8531
09-10-2018, 14:40
здравствуйте. прошу помощи в правке синтаксиса шаблона исключения типов файлов из каталога, при синхронизации с помощью rsync. есть скрипт:
rsync -a --exclude-from=/home/exclude.list --delete /home/user/* /mnt/backup/pc7056
содержимое exclude.list:

- *.mp3
- *.avi
- *.mpg
- *.3gp
- *.jpg

в каталоге /home/user/Загрузки файлы формата mp3 отфильтровываются при копировании, а вот в /home/user/Документы/Pictures/1/ - файлы формата jpg почему-то - нет. в чём может быть загвоздка?

Dimon
13-10-2018, 13:47
Нет ли лишнего пробела в конце строки исключения *jpg ? exclude-from читается "как есть" и пробел в конце будет интерпретирован как дополнительный символ к шаблону.
Регистр файлов jpg не различается ли? Например, при загрузке фотографий с фотоаппаратов они могут быть в верхнем регистре - *.JPG

man8531
13-10-2018, 14:28
пробела нет. оставлял совсем одну маску и переставлял местами. фильтрует только на один уровень вниз в каталоге, хотя параметр а подразумевает рекурсивный вход в каталоги. регистры пробовал менять - не помогло.

Dimon
14-10-2018, 19:12
Debian-9.5, rsync version 3.1.2 protocol version 31


#~: ls -R /tmp/1
11 12
./11:
111 1.jpg 2.jpg
./11/111:
1.gif 1.pdf 3.jpg
./12:
4.jpg


#~: cat excl
- *.jpg

Внимание: пробел между "минусом" и шаблоном


#~: rsync -a --exclude-from excl /tmp/1/* /tmp/2
#~: ls -R /tmp/2
11 12
./11:
111
./11/111:
1.gif 1.pdf
./12:


Все отработало как положено.
Кстати, только сейчас заметил: в вашем файле исключений *.jpg идет последней строкой - после нее есть перевод на новую строку?




© OSzone.net 2001-2012