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