如何仅对目录中存在的文件进行tar . 我已经尝试了 tar -cvf /tmp/test.tar /tmp/mylog.doc
在家庭指挥,但当我解开它时,内容也包括 tmp
目录 . 我只需要文件 mylog.doc
出现在tar文件中 . 我看到类似的查询Tarring only the files of a directory . 但无法得到很多帮助 .
如何仅对目录中存在的文件进行tar . 我已经尝试了 tar -cvf /tmp/test.tar /tmp/mylog.doc
在家庭指挥,但当我解开它时,内容也包括 tmp
目录 . 我只需要文件 mylog.doc
出现在tar文件中 . 我看到类似的查询Tarring only the files of a directory . 但无法得到很多帮助 .
2 回答
使用
-C
命令行参数指示您要使用的目录 . 然后,您可以使用相对于此目录包含的文件名 .请注意,这不适用于tar文件本身 .
因为使用“/ path / to / file”或“./path/to/file”:将在生成的tar文件中添加“path / to /”(除非特定的(也可能是非可移植的)选项告诉tar否则)
注意:一些不太老的 生产环境 系统在提取时仍然无法摆脱领先的“/” .
在那些“不太旧”的系统上:
将覆盖文件/ etc / hosts,而不是在/ secure / location下面输出"./etc/hosts"文件! (正如大多数现在做的那样:他们现在都默默地忽略尾随的"/",使路径相对而不是绝对,这是99.9%的人想要的)
我最近被烧毁了:想要提取日志,并且该日志最终覆盖了原始位置(因此覆盖了更新的日志文件) . 在系统上第一次使用tar之前,请务必检查这一点 . (有一些解决方法,但不是太简单:chroot,以及其他命令,如“sar”)