【发布时间】:2017-03-16 04:54:36
【问题描述】:
我正在尝试从/home/mc/server/ 备份所有world* 文件夹并将压缩文件放入/home/mc/backup/ 中
#!/bin/bash
moment=$(date +"%Y%m%d%H%M")
backup="/home/mc/backup/map$moment.zip"
map="/home/mc/server/world*"
zipping="zip -r -9 $backup $map"
eval $zipping
压缩文件按预期在backup 文件夹中创建,但是当我解压缩它时,它包含整个 /home 目录。我以两种方式运行这个 bash:
- 手动
- 使用用户的 crontab
最后,如果我输入echo $zipping 的回显,这将正确打印我需要触发的命令。我错过了什么?提前谢谢你。
【问题讨论】:
-
不要使用 eval,也许试试
`zip -r -9 $backup $map`? (带反引号?) -
@AlexanderKohler,bash 正在打印该更改的错误:
adding:: command not found -
@AlexanderKohler 尝试将
zip命令的输出 作为另一个命令运行。$zipping本身会有点工作(尽管没有解析 shell 结构,如管道或复合命令)。