仅备份具有口是心非的隐藏(点)文件

仅备份具有口是心非的隐藏(点)文件

我想备份配置文件(隐藏,以点开头)口是心非。只有文件,没有目录。以下命令

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

相关内容