一、tarzcvf基本用法
tar -zcvf filename.tar.gz dir
以上命令将会压缩文件夹dir成为一个名为filename.tar.gz的压缩包,其中参数说明:
- z表示进行gzip压缩;
- c表示创建一个压缩文件;
- v表示在创建过程中显示详细信息,方便调试;
- f表示生成的压缩文件名后面跟着一个文件名,即filename.tar.gz。
在上述示例中,压缩文件名后缀为.tar.gz,这是因为先经过tar打包成为.tar文件,再经过gzip压缩成为.gz文件。
二、压缩多个文件和文件夹
tar -zcvf filename.tar.gz dir1 file.txt dir2
以上命令将会压缩文件夹dir1、文件file.txt和文件夹dir2生成一个名为filename.tar.gz的压缩包。
如果要同时打包多个文件和文件夹,只需将多个文件和文件夹按照顺序放在tar命令后面即可。
三、使用通配符压缩文件
tar -zcvf filename.tar.gz dir/*
以上命令将会压缩文件夹dir下的所有文件和子文件夹,生成一个名为filename.tar.gz的压缩包。使用通配符可以方便地打包某个文件夹下的所有文件和子文件夹。
四、压缩时排除文件或文件夹
tar -zcvf filename.tar.gz --exclude=file_or_dir_to_exclude dir
以上命令将会压缩文件夹dir,但是排除名为file_or_dir_to_exclude的文件或文件夹。在实际操作中,有时候需要在压缩时排除某些文件或文件夹,这个时候就可以使用--exclude选项。
需要注意的是,这个选项只能排除名字匹配的文件或文件夹,不支持通配符。
五、使用tarzcvf解压文件
tar -zxvf filename.tar.gz
以上命令将会解压名为filename.tar.gz的压缩包,其中参数说明:
- z表示进行gzip解压缩;
- x表示解压缩;
- v表示在解压的过程中显示详细信息,方便调试;
- f表示后面跟着要解压的文件名,即filename.tar.gz。
在解压之后,将会得到压缩包中包含的所有文件和文件夹。
六、使用tarzcvf压缩远程主机上的文件
ssh user@remote_host "tar -zcvf - /remote_dir" > local_filename.tar.gz
以上命令将会在远程主机上压缩指定文件夹,并将压缩文件传输到本地。其中参数说明:
- user是远程主机的用户名;
- remote_host是远程主机的地址;
- remote_dir是要压缩的文件夹在远程主机上的路径;
- local_filename.tar.gz是本地生成的压缩文件名。
需要注意的是,这个命令会先在远程主机上执行tar命令将要压缩的文件夹打包,然后将打包后的数据以STDOUT的方式输出到管道中,最后通过ssh传输到本地并保存为一个本地文件。
七、使用tarzcvf解压远程主机上的文件
ssh user@remote_host "cat remote_filename.tar.gz" > local_filename.tar.gz tar -zxvf local_filename.tar.gz
以上命令将会在远程主机上解压指定文件,并将解压后的文件传输到本地。其中参数说明:
- user是远程主机的用户名;
- remote_host是远程主机的地址;
- remote_filename.tar.gz是要在远程主机上解压的文件名;
- local_filename.tar.gz是解压后传输到本地的文件名。
需要注意的是,这个命令会先在远程主机上执行cat命令将指定的文件读取到STDOUT中,然后通过ssh传输到本地并保存为一个本地文件。之后再使用tar命令解压该文件。
八、总结
tarzcvf是Linux中非常常用的打包和压缩工具,掌握了tarzcvf的使用技巧可以非常方便地管理文件和数据。在实际的Linux运维中,我们经常需要使用tarzcvf打包和压缩文件,同时也需要掌握在远程主机上使用tarzcvf进行文件打包和传输的技巧。