首页 文章

tar只是目录中的文件

提问于
浏览
0

如何仅对目录中存在的文件进行tar . 我已经尝试了 tar -cvf /tmp/test.tar /tmp/mylog.doc 在家庭指挥,但当我解开它时,内容也包括 tmp 目录 . 我只需要文件 mylog.doc 出现在tar文件中 . 我看到类似的查询Tarring only the files of a directory . 但无法得到很多帮助 .

2 回答

  • 0

    使用 -C 命令行参数指示您要使用的目录 . 然后,您可以使用相对于此目录包含的文件名 .

    tar -cvf /tmp/test.tar -C /tmp mylog.doc
    

    请注意,这不适用于tar文件本身 .

  • 3
    cd sourcedir ; tar cvf archive.tar ./file_to_tar
    

    因为使用“/ path / to / file”或“./path/to/file”:将在生成的tar文件中添加“path / to /”(除非特定的(也可能是非可移植的)选项告诉tar否则)

    注意:一些不太老的 生产环境 系统在提取时仍然无法摆脱领先的“/” .

    在那些“不太旧”的系统上:

    tar cvf /tmp/hosts-backup.tar /etc/hosts
    cd /secure/location
    tar xvf /tmp/hosts-backup.tar
    

    将覆盖文件/ etc / hosts,而不是在/ secure / location下面输出"./etc/hosts"文件! (正如大多数现在做的那样:他们现在都默默地忽略尾随的"/",使路径相对而不是绝对,这是99.9%的人想要的)

    我最近被烧毁了:想要提取日志,并且该日志最终覆盖了原始位置(因此覆盖了更新的日志文件) . 在系统上第一次使用tar之前,请务必检查这一点 . (有一些解决方法,但不是太简单:chroot,以及其他命令,如“sar”)

相关问题