我的情况是我只有某个文件夹的执行权限:
让我们说,我想备份整个文件夹,并使用exclude.txt
排除一些文件夹和文件以下是我想备份的路径:
/pdf/data/pdfnew/2014
我只有从此文件夹(主要)执行的权限:
/pdf/data/pdfnew/2014/public/main
我把exclude.txt
放在同一个文件夹中,我可以执行命令(main)
我在(主文件夹)中执行此命令:
tar -cjvf -X exclude.txt 2014.tar.bz2 /pdf/data/pdfnew/2014
结果是它仍然包含我不想备份的文件夹。
这样做有正确的方法吗?
答案 0 :(得分:1)
您在该服务器上有user
/ home
目录吗?您应该这样做,因此您应该将exclude.txt
放在该服务器上的user
/ home
目录中。从该目录运行它:
tar -cjvf -X ~/exclude.txt ~/2014.tar.bz2 /pdf/data/pdfnew/2014
~/
是user
/ home
目录的简写,所以在这种情况下它明确说明,“从exclude.txt
/读取user
/ home
目录&将~/2014.tar.bz2
写入user
/ home
目录。
但你也问这个:
这样做有正确的方法吗?
从来没有一种规范的最佳做法。这完全取决于您的最终/目标。而已。没什么。也就是说,如果我是你,我会这样做而不是使用-C
选项:
tar -cjvf -X ~/exclude.txt ~/2014.tar.bz2 -C /pdf/data/pdfnew/ 2014
大写-C
选项允许tar
在内部change the working directory到/pdf/data/pdfnew/
,这样您就可以创建2014
的存档而无需拥有整个目录树保留在备份中。我发现这更容易使用,因为很多时候我想备份目录的内容但没有用来保留父结构。这样,存档更像是一个传统的ZIP存档,我觉得它更容易理解。与之合作。