bash 正在压缩整个家
bash is zipping entire home
我正在尝试备份 /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
(不,如果你想记录命令行并随后执行它,那么在 DRY 的基础上证明它不是一个很好的理由 IMO。)
定义一个函数并使用适当的参数调用它:
#!/bin/bash
moment=$(date +"%Y%m%d%H%M")
zipping () {
output=
shift
zip -r -9 "$output" "$@"
}
zipping "/home/mc/backup/map$moment.zip" /home/mc/server/world*
(我承认,我不知道是什么导致了你报告的行为,但最好在尝试诊断之前确认它不是特定于 eval
的使用进一步。)
我正在尝试备份 /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
(不,如果你想记录命令行并随后执行它,那么在 DRY 的基础上证明它不是一个很好的理由 IMO。)
定义一个函数并使用适当的参数调用它:
#!/bin/bash
moment=$(date +"%Y%m%d%H%M")
zipping () {
output=
shift
zip -r -9 "$output" "$@"
}
zipping "/home/mc/backup/map$moment.zip" /home/mc/server/world*
(我承认,我不知道是什么导致了你报告的行为,但最好在尝试诊断之前确认它不是特定于 eval
的使用进一步。)