tar only the file in the directory
如何仅tar目录中存在的文件。我试过把
使用
1 | tar -cvf /tmp/test.tar -C /tmp mylog.doc |
请注意,这不适用于tar文件本身。
1 | cd sourcedir ; tar cvf archive.tar ./file_to_tar |
因为使用"/path/to/file"或"./path/to/file":将在生成的tar文件中添加"path/to/"(除非特定(也可能是不可移植的)选项告诉tar否则)
注:有些不太老的生产系统在提取时也无法去掉前导的"/"。
在那些"不那么老"的系统上:
1 2 3 | 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")。