我想备份配置文件(隐藏,以点开头)口是心非。只有文件,没有目录。以下命令
duplicity --include '/home/foo/.*' --exclude '/home/foo/**' /home/foo sftp://myserver/backup --dry-run
备份以点开头的所有内容,因此也包括配置目录。
另一方面
duplicity --exclude '/home/foo/**' --include '/home/foo/.*' /home/foo sftp://myserver/backup --dry-run
产生
命令行 include glob: /home/foo/.* 仅指定包含文件。由于默认情况下是包含所有文件,因此该表达式是多余的。退出,因为这可能不是您的意思。
我没有其他想法。如何仅备份以点开头的文件。
答案1
卡托纳格,
尝试在开头添加--exclude '/home/foo/.*/'
或,例如。--exclude '/home/foo/.*/**'
--exclude '/home/foo/.*/' --include '/home/foo/.*' --exclude '**'
。
按给定顺序进行/排除口是心非测试。所以上面的内容翻译成
- /home/foo/.*/
+ /home/foo/.*
- **
其中第一个匹配,.folder
但不匹配.file
,第二个指令匹配,第三个排除其他所有内容。
如果/home/foo/.*/
不起作用,请尝试/home/foo/.*/**
。这是因为口是心非的匹配代码可能无法区分文件和文件夹,我没有时间测试这一点。
祝你好运.. ede/duply.net
PS:口是心非的手册页中有一个关于 in/exclusion 的章节http://duplicity.nongnu.org/duplicity.1.html#sect9
答案2
要仅备份隐藏文件,您可以使用以下命令这里我将隐藏文件复制到 /tmp/location 作为备份
ls -latr | awk '$1 ~ "-rw" && $9 ~ "^." {print "cp -rvfp" " " $9 " " "/tmp/"}' | sh
要备份 /tmp/ 位置中的隐藏文件和目录,您可以使用以下命令
ls -latr | awk '$9 ~ "^." {print "cp -rvfp" " " $9 " " "/tmp/"}' | sh