我正在 Windows 上运行 Eclipse,并且希望自动备份所有项目的 src 目录。我安装了 cygwin 并尝试制作一个简单的备份脚本,但在正确指定目标文件名时遇到问题。备份应位于脚本的当前目录中。
#!/bin/bash
for f in /cygdrive/c/Documents\ and\ Settings/USERNAME/My\ Documents/Eclipse\ Workspace/*
do
echo "in folder \"$f\""
cp -a "$f"/src/ ./????.bak
done
我想 ????是项目文件夹(不是绝对路径)。谢谢。
答案1
我认为您正在寻找的外壳结构是dirname
。
for f in /cygdrive/c/Documents\ and\ Settings/USERNAME/My\ Documents/Eclipse\ Workspace/*
do
cp -a "$f/src/" "./$(dirname "$f").bak"
done
但实际上,这不是一个好的备份解决方案。每次运行副本时,之前的状态都会被删除。而且它根本不提供任何历史记录。使用版本控制。使用任何东西,甚至CVS(一个小时内即可学会其有用的功能)。无论您选择哪个版本控制系统:
- 创建存储库。
- 签入或导入现有文件。
- 每当你完成一小部分工作时,就承诺。
答案2
我建议使用源代码管理系统,如 git 或 hg (mercurial)。如果它们是私人项目,BitBucket 有一个很好的免费私人项目存储(鉴于该项目的人员少于 10 人)。 Git 在 Windows 上运行良好,并且有一个名为 EGIT 的 Eclipse 插件,它允许您同步到其他地方的存储库。对于编程,我肯定会推荐这样做而不是编写备份脚本。