【问题标题】:How to temporarily backup the current folder?如何临时备份当前文件夹?
【发布时间】:2021-11-05 03:02:29
【问题描述】:

我想做以下事情:

  1. 备份当前文件夹
  2. 运行一些测试文件
  3. 恢复备份(删除之前命令的所有更改)
  4. 删除备份

很遗憾,我没有可用的 Git。否则我会这样做

git add .
git commit -m "backup"
# run commands
git checkout .

【问题讨论】:

    标签: bash backup


    【解决方案1】:

    最简单的方法是在父目录或其他方便的位置创建一个副本。

    您可以创建这样的别名以使其更容易:

    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 -' 
    

    【讨论】:

      【解决方案2】:

      在这种情况下,我为此目的创建了一个目录${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
      

      【讨论】:

        【解决方案3】:
        cd /working/dir
        tar cfz ../backup.tar.gz .
        # do your thing
        #
        # and then some
        rm *
        tar xf ../backup.tar.gz
        rm ../backup.tar.gz
        

        【讨论】:

          猜你喜欢
          • 2010-10-30
          • 1970-01-01
          • 2016-02-28
          • 2017-06-19
          • 1970-01-01
          • 1970-01-01
          • 2013-07-26
          • 1970-01-01
          相关资源
          最近更新 更多