que tienen una sencilla prueba de escritura del golpe que se parece a lo siguiente:script del archivo contra de línea de comandos: rsync y --exclude
#!/bin/bash
cmd="rsync -rv --exclude '*~' ./dir ./new"
$cmd # execute command
Cuando ejecuto el guión se copia también los archivos que terminan con un ~
a pesar de que quise excluirlos. Cuando ejecuto el mismo comando rsync directamente desde la línea de comandos, ¡funciona! ¿Alguien sabe por qué y cómo hacer funcionar el script bash?
Btw, sé que también puedo trabajar con --exclude-from
pero quiero saber cómo funciona esto de todos modos.
Lo puse en una variable para depurar. Comencé sin comillas simples y eso fue incluso peor (de hecho, es por eso que los puse allí) debido a la expansión. P.ej. "rsync -r --exclude * ~ ./dir ./new" expandido a "rsync -r --excluir foo ~ bar ~ foobar.sh ~ ./dir ./new" – Chris
¿Lo intentó con las comillas simples, pero sin ponerlo en una variable (como en mi segunda recomendación)? Debería funcionar bien (y parecía cuando lo probé). –