tar
tar可将多个文件打包成一个文件
每个文件起始处有512字节的tar首部
最初用于将文件系统存储在磁带上备份(故又称磁带存档)
tar命令有两种主要模式:压缩和解压。以下是tar命令的五种主要选项:
-
-c:这表示创建,用于生成文件包,即打包文件。
-
-r:这表示把要存档的文件追加到档案文件的末尾。例如,如果你已经做好备份文件,但发现还有一个目录或一些文件忘记备份了,可以使用该选项,将忘记的目录或文件追加到备份文件中。
-
-t:这表示列出档案文件的内容,查看已经备份了哪些文件。
-
-u:这表示更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
-
-x:这表示提取,从文件包中提取文件。
-
-z:使用gzip压缩
-
-f:后接文件名,指定档案文件。如果文件名用'-'代替,则代表从标准输入读(解压文件时)或写到标准输出(建立文件时)。tar -O也会将压缩内容输出到标准输出。
-
-v:在操作过程中显示详细信息
tar程序不要求文件扩展名为tar,不确定文件类型时可使用file命令,压缩后的文档类型为GNU tar archive
构建当前目录的tar档案文件(重定向示例):
tar cvf - `find . -print` > test.tar
这里find . -print命令的输出被作为参数传递给tar命令,'-'将档案送到标准输出,然后再重定向到test.tar文件中(注意,find . print中显示的所有文件和目录都被压缩了)
以下是使用tar命令创建、压缩和解压tar文件的基本选项和用法:
-
创建tar文件:
bash复制代码 tar -cvf archive.tar directory_to_compress
在这个命令中,“-c”表示创建新的tar文件,“-v”表示在操作过程中显示详细信息,“-f”指定了档案文件的名称为"archive.tar"。 \2. 使用gzip压缩tar文件:
bash复制代码 tar -czvf archive.tar.gz directory_to_compress
在这个命令中,“-z”表示使用gzip压缩。生成的文件将命名为"archive.tar.gz"。 \3. 使用bzip2压缩tar文件:
bash复制代码 tar -cjvf archive.tar.bz2 directory_to_compress
在这个命令中,“-j”表示使用bzip2压缩。生成的文件将命名为"archive.tar.bz2"。 \4. 解压tar文件:
bash复制代码 tar -xvf archive.tar
在这个命令中,“-x”表示提取文件,“-v”表示在操作过程中显示详细信息,“-f”指定了要解压的档案文件的名称为"archive.tar"。 \5. 解压gzip压缩的tar文件:
bash复制代码 tar -xzvf archive.tar.gz
在这个命令中,“-z”表示使用gzip解压缩。解压后的文件将提取到当前目录。 \6. 解压bzip2压缩的tar文件:
bash复制代码 tar -xjvf archive.tar.bz2
在这个命令中,“-j”表示使用bzip2解压缩。解压后的文件将提取到当前目录。
bash查看压缩文件内文件和目录的路径名 tar -tvf archive.tar
bash选定压缩文件中的内容恢复 tar -xvf archive.tar fileaddr
cp [-r]命令复制时未保留文件存取权限(由umask的值决定),以及修改时间由当前时间设定,tar可以保留权限和修改信息。部分linux系统cp命令不支持-r参数。
cp -r dir1 dir2可作如下修改,用tar实现:
(cd dir1 ; tar -cvf - . ) | (cd dir2 ; tar -xvf -)