linux - Unison 无法备份隐藏的点文件

标签 linux configuration-files dotfiles unison

我正在使用 unison(一种文件同步工具)在我的 linux 机器(客户端)和 linux ssh 服务器(主机)之间同步文件。它会很好地同步点文件(以 . 开头的配置文件),但它根本不会创建它们的备份。这是一个错误,还是我遗漏了一些明显的东西。在我发送错误报告之前,我主要希望有人再次确认我没有做蠢事。下面是一个最小的 unison 配置文件和重新创建错误的步骤。

### ~/.unison/Test.prf

### Roots of Syncronization
  root = /home/username
  root = ssh://root@<host-ip-here>//root/SyncDir
  sshargs = -C -i /home/username/ssh-key

### Directories to be Synced
  path = TestDir

### Backup Settings
  backuplocation = central
  backupdir = /root/BackupDir
  backup = Name *
  maxbackups = 9
  backupprefix = 
  backupsuffix = .$VERSION

下面是我在客户端机器上运行的程序来演示错误:

~$ mkdir TestDir; 
~$ touch TestDir/testfile TestDir/.dottestfile
~$ ssh -i ssh-key root@<host-ip-here> 'mkdir SyncDir BackupDir'
~$ unison Test
~$ ssh -i ssh-key root@<host-ip-here> 'ls -A SyncDir/TestDir'
.dottestfile
testfile
~$ echo "some changes" > TestDir/testfile
~$ echo "some changes" > TestDir/.dottestfile
~$ unison Test
~$ ssh -i ssh-key root@<host-ip-here> 'ls -A SyncDir/TestDir'
.dottestfile
testfile
~$ ssh -i ssh-key root@<host-ip-here> 'ls -A BackupDir/TestDir'
testfile

最佳答案

事实证明这不是错误,我正在做一些愚蠢的事情。直到 backup = Name 需要一个标准通配模式 according to the unison manual , 所以这条线

backup = Name *

不匹配名称中带有前导 . 的任何文件。该行应该是

backup = Name {.*,*}

关于linux - Unison 无法备份隐藏的点文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28956691/

相关文章:

git - 如何使用 git 跟踪主目录中的 "dot"配置文件?

linux - 每 5 分钟将 curl 输出重定向到动态文件名

python - 使用 dh_virtualenv 对 python 包进行 debianising 时,console_scripts 不在路径上

linux - 如何查看在应用程序命令期间访问了哪些文件?

php - 在新数据库中安装表、字段和静态数据的标准方法是什么?

git - 如何使用Git跟踪用户的点文件?

linux - windows下如何使用libFM?

c# - 在 appSettings 中为一个键使用多个值

visual-studio - Windows Powershell 和 Visual Studio '08 路径