tar只是目录中的文件

时间:2013-03-27 08:32:38

标签: linux archive tar

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

2 个答案:

答案 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”)