【发布时间】:2021-11-05 03:02:29
【问题描述】:
我想做以下事情:
- 备份当前文件夹
- 运行一些测试文件
- 恢复备份(删除之前命令的所有更改)
- 删除备份
很遗憾,我没有可用的 Git。否则我会这样做
git add .
git commit -m "backup"
# run commands
git checkout .
【问题讨论】:
我想做以下事情:
很遗憾,我没有可用的 Git。否则我会这样做
git add .
git commit -m "backup"
# run commands
git checkout .
【问题讨论】:
最简单的方法是在父目录或其他方便的位置创建一个副本。
您可以创建这样的别名以使其更容易:
alias bak-cur-dir='(DIR="${PWD##*/}" && cd .. && cp -r "$DIR" "$DIR".bak)'
alias res-cur-dir='(DIR="${PWD##*/}" && cd .. && rm -rf "$DIR" && mv "$DIR".bak "$DIR") && cd .. && cd -'
【讨论】:
在这种情况下,我为此目的创建了一个目录${TMP:-/tmp}/$$。您稍后可以通过定义TMP 来更改位置,并且当TMP 未设置时,它会使用一些合理的东西。
tmpdir=${TMP:-/tmp}/$$
mkdir -p "$tmpdir"
cp -r . "$tmpdir"
.... # Do your processing and set
.... # the variable keep_backup to
.... # your liking.
# Remove unneeded backup, when done.
if ((keep_backup == 0))
then
rm -r "$tmpdir"
else
echo You find a backup in $tmpdir
fi
【讨论】:
cd /working/dir
tar cfz ../backup.tar.gz .
# do your thing
#
# and then some
rm *
tar xf ../backup.tar.gz
rm ../backup.tar.gz
【讨论】: