您想在需要tar的文件所在的地方创建tar文件吗?
有很多方法可以做到这一点。
如果要在本地创建(=在同一台计算机上):
tar czvf /path/to/destination/newfile.tar.gz ./SOURCEDIR_OR_FILES
您可以在该命令的末尾将其他文件或目录添加到tar中。
如果要远程创建它(即,您要从包含要被映射的数据的主机上在一个远程主机上创建tar文件):
tar czvf - ./SOURCEDIR_OR_FILES | ssh user@host 'cat > newfile.tar.gz'
更高版本的功能非常丰富。例如,您还可以使用相同的技术“复制”目录+子目录:
将目录+子目录复制到另一个本地目录:
tar cf - ./SOURCEDIR_OR_FILES | ( cd LOCAL_DEST_DIR && tar xvf - )
将目录+子目录复制到另一个远程目录:
tar cvf - ./SOURCEDIR_OR_FILES | ssh user@host 'cd REMOTE_DEST_DIR && tar xf - '
如果不需要,请删除'v'来显示已压缩(或未压缩)的文件:这样可以加快速度,但是除非出错,否则不会多说。
我使用“。/ ...”作为源来强制tar将其存储为相对路径。在某些情况下,您需要添加其他路径信息:
例如,要压缩crontab文件(包括/ etc中的文件),您可以执行以下操作:
cd / ; tar czf all_crons.tgz ./etc/*cron* ./var/spool/cron
我故意使用相对路径:某些旧版本的tar可能很危险,并使用其原始GLOBAL路径提取文件,这意味着您可以这样做:cd /safedir ; tar xvf sometar
并且将具有全局名称的文件覆盖其原始路径下的文件,即/ safedir的外部而不是在下面!非常危险,并且仍然可能,因为那里有旧的生产服务器。最好一直使用相对路径,即使您使用较新的tar。
cd /opt; tar zcf $HOME/junk.tar.gz junk
。