bash – rsync不删除字符串数组周围的单引号–filter list
发布时间:2020-12-15 18:27:52 所属栏目:安全 来源:网络整理
导读:尝试安全地从收购时来到我们的严重受感染的 Windows XP和2003机器中检索文件.我有类似的需要自动化在PXE启动的DRBL机器上运行的脚本到rsync到我们的服务器. 以下代码生成单引号,将整个’–filter =”’参数包装到rsync中.注意echo会删除单引号,但不会删除rsy
尝试安全地从收购时来到我们的严重受感染的
Windows XP和2003机器中检索文件.我有类似的需要自动化在PXE启动的DRBL机器上运行的脚本到rsync到我们的服务器.
以下代码生成单引号,将整个’–filter =”’参数包装到rsync中.注意echo会删除单引号,但不会删除rsync.我究竟做错了什么?将每个参数作为数组中的条目会有帮助吗? 失败因为包裹单引号: '--filter='''- "Default User/"''' --filter='''- "Application Data/"''' ' 当我运行相同的命令但手动删除包装单引号时,rsync运行正常. --filter='''- "Default User/"''' --filter='''- "Application Data/"''' 没有和没有–protect-args尝试过. #!/bin/sh -x PROTECTARGS=--protect-args EXCLUDE=( '- "Default User/"' '- "Application Data/"' ) echo EXCLUDE="${EXCLUDE[*]}" FILTER=() for X in "${EXCLUDE[@]}"; do FILTER=( "${FILTER[@]}" "--filter='${X}' " ); done; echo FILTER="${FILTER[*]}" if [ "1" == "1" ]; then rsync --dry-run -vv --stats --recursive "$PROTECTARGS" "${FILTER[*]}" '/hddOld/Documents and Settings' '/hddNew/' fi; OUTPUT: FILTER=--filter='- "Default User/"' --filter='- "Application Data/"' + '[' 1 == 1 ']' + rsync --dry-run -vv --stats --recursive --protect-args '--filter='''- "Default User/"''' --filter='''- "Application Data/"''' ' '/hddOld/Documents and Settings' /hddNew/ Unknown filter rule: `'- "Default User/"' --filter='- "Application Data/"' ' rsync error: syntax or usage error (code 1) at exclude.c(817) [client=3.0.6] bash-4.1.2-14.el6.x86_64 rsync version 3.0.6 protocol version 30 rsync-3.0.6-9.el6.x86_64 CentOS 6.4 x64 工作……不,它没有: FILTER+=( --filter=""${X}"" ); RESULTS IN: '--filter=- "Default User/" --filter=- "Application Data/"' rsync不会抱怨此过滤规则,但实际上并未过滤掉“Application Data /”.
我这样做是为了工作:
我变了: EXCLUDE=( '- "Default User/"' '- "Application Data/"' ) 至 EXCLUDE=( '-_Default User/' '-_Application Data/' ) 这删除了双引号并在“ – ”后面使用了替换下划线“_”语法.先前的回答提示了这一点,但我必须添加“_”语法才能让它适合我. 也改变了: FILTER=( "${FILTER[@]}" "--filter='${X}' " ); 至 FILTER=( "${FILTER[@]}" "--filter=${X}" ); 这从X变量替换中删除了撇号. 并改变了: "${FILTER[*]}" 至 "${FILTER[@]}" 这会导致数组的每个元素被视为单个参数,而不是如前所述的整个数组. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |