Мне нужно скопировать исходный каталог в каталог назначения с помощью rsync в bash, за исключением файлов с определенными расширениями (.qcow2). Он работает правильно, когда я пытаюсь ввести команду вручную, но не работает с переменной bash.
Я установил переменную bash, ниже ее содержимое:
# echo $line
/mnt/source --exclude='*.qcow2'
Несмотря на наличие параметра exclude, rsync копирует файл «.qcow2»:
# rsync -av $line destination/
sending incremental file list
source/Atlas/
source/Atlas/atlas.sh
source/Atlas/atlas.qcow2
sent 2143238309 bytes received 56 bytes 115850722.43 bytes/sec
total size is 2143164594 speedup is 1.00
Пока работает rsync, я вижу процесс, как показано ниже:
# ps -ef | grep rsync
root 39058 11032 62 14:56 pts/22 00:00:01 rsync -av /mnt/source --exclude='*.qcow2' destination/
root 39059 39058 0 14:56 pts/22 00:00:00 rsync -av /mnt/source --exclude='*.qcow2' destination/
root 39060 39059 71 14:56 pts/22 00:00:02 rsync -av /mnt/source --exclude='*.qcow2' destination/
root 39066 14866 0 14:56 pts/24 00:00:00 grep rsync
Файл ".qcow2" скопирован выше, этого я хочу избежать.
Когда я запускаю ту же команду без переменной, как видно из вывода ps (после удаления файлов в целевом каталоге), она работает правильно, файл «.qcow2» не передается:
# rm -f destination/Atlas/*
# rsync -av /mnt/source --exclude='*.qcow2' destination/
sending incremental file list
source/Atlas/
source/Atlas/atlas.sh
sent 14956 bytes received 37 bytes 29986.00 bytes/sec
total size is 202930 speedup is 13.53
Как я могу заставить его работать, чтобы избежать передачи файла «.qcow2» с использованием переменных в bash?
заранее спасибо