linux的绝对路径:是从根目录开始的完整路径。以正斜杠(/)开始。
linux的相对路径:是相对于当前工作目录的路径。以当前目录(.)或父目录(..)开始。
问题:
第一步:把linux下不同目录下的文件tar压缩到一个包里的时候。如果打包目标是绝对路径会出现
tar: 从成员名中删除开头的“/” 如下图:
第二步:然后压缩成的文件里面,少了一个表示根目录的“/”,如下图:home前面缺少了“/”
第三步:然后解压的时候,因为压缩包里缺少根目录“/”,所以会把压缩包解压到当前目录下。
mbs目录下的home目录为解压之后新生成的。
解决方法:
加一个-P选项。tar 指令的-P选项,作用是不去掉开头的 / 。
第一步:压缩 tar -Pzcvf xxx.tar.gz file1 file2 file3...
第二步:压缩成的文件里面,含有“/”,如下图:
第三步:然后解压缩的时候,也得加上-P选项:
这样才能把压缩文件解压到指定的目录下,并且替换掉旧的文件(目录下/home/mbs/dir1/dir2/dir3/hellow.c的文件解压之后被替换)。