测试树形目录

$ cd mimvp-blog/
$ tree
.
|____111.txt
|____222.txt
|____333.txt
|____folder01
| |____111.txt
| |____222.txt
| |____333.txt
|____folder02
| |____111.txt
| |____222.txt
| |____333.txt
|____folder03
| |____111.txt
| |____222.txt
| |____333.txt

 

cp 命令排除不想拷贝的文件和子目录

rsync(remote sync)是UNIX及类UNIX平台下一款神奇的数据镜像备份软件,它不像FTP或其他文件传输服务那样需要进行全备份,Rsync可以根据数据的变化进行差异备份,从而减少数据流量,提高工作效率。你可以使用它进行本地数据或远程数据的复制,Rsync可以使用SSH安全隧道进行加密数据传输。Rsync服务器端定义源数据,Rsync客户端仅在源数据发生改变后才会从服务器上实际复制数据至本地,如果源数据在服务器端被删除,则客户端数据也会被删除,以确保主机之间的数据是同步的。Rsync使用TCP 873端口。

rsync 命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。

安装 rsync:yum -y install rsync

rsync 命令 -a参数表示archive模式,-v表示详细链模式输出,-z表示传输文件时使用压缩传输的模式。

注意:--exclude后面的路径不能为绝对路径,必须为相对路径才可以,否则出错。

 

例如,不想拷贝文件 333.txt,不想拷贝目录 folder02、folder03,需要写三个排除参数

rsync -av --exclude mimvp-blog/111.txt --exclude mimvp-blog/folder02 --exclude mimvp-blog/folder03 mimvp-blog ~/script/

或者

cd mimvp-blog/
rsync -av --exclude 333.txt --exclude folder02 --exclude folder03 ../mimvp-blog ~/script/

示例演示:

$ cd mimvp-blog/
$ rsync -av --exclude 333.txt --exclude folder02 --exclude folder03 ../mimvp-blog ~/script/
building file list ... done
mimvp-blog/
mimvp-blog/111.txt
mimvp-blog/222.txt
mimvp-blog/folder01/
mimvp-blog/folder01/111.txt
mimvp-blog/folder01/222.txt

sent 394 bytes  received 120 bytes  1028.00 bytes/sec
total size is 20  speedup is 0.04

注意:

1、排除的可以是文件,也可以是目录(文件夹)

2、排除一个目录是 --exclude dir1 ,而不是 --exclude dir1/ ,排除文件当然都是  --exclude file.txt

3、MacOS平台是 --exclude dir1 ; CentOS 平台是 --exclude=dir1,注意空格和等号(=),不同系统平台参数格式可能不一样

 

查看拷贝结果:

$ ll ~/script/mimvp-blog/
-rw-r--r--  1 homer  staff    5  9 14 15:26 111.txt
-rw-r--r--  1 homer  staff    5  9 14 15:26 222.txt
drwxr-xr-x  4 homer  staff  136  9 14 15:27 folder01

 

 

tar 命令排除不想压缩的文件和子目录

tar 排除压缩参数为 --exclude,可以匹配排除文件和目录

安装 tar:yum -y install tar

 

例如,压缩时排除文件 333.txt,排除目录 folder02、folder03,需要写三个排除参数

tar zcvf ~/script/mimvp-blog.tar.gz --exclude mimvp-blog/111.txt --exclude mimvp-blog/folder02 --exclude mimvp-blog/folder03 mimvp-blog

示例演示:

$ tar zcvf ~/script/mimvp-blog.tar.gz --exclude mimvp-blog/111.txt --exclude mimvp-blog/folder02 --exclude mimvp-blog/folder03 mimvp-blog
a mimvp-blog
a mimvp-blog/222.txt
a mimvp-blog/333.txt
a mimvp-blog/folder01
a mimvp-blog/folder01/111.txt
a mimvp-blog/folder01/222.txt
a mimvp-blog/folder01/333.txt

注意:

1、排除的可以是文件,也可以是目录(文件夹)

2、排除一个目录是 --exclude dir1 ,而不是 --exclude dir1/ ,排除文件当然都是  --exclude file.txt

3、MacOS平台是 --exclude dir1 ; CentOS 平台是 --exclude=dir1,注意空格和等号(=),不同系统平台参数格式可能不一样

 

查看压缩的结果:

$ tar zxvf mimvp-blog.tar.gz  
x mimvp-blog/
x mimvp-blog/222.txt
x mimvp-blog/333.txt
x mimvp-blog/folder01/
x mimvp-blog/folder01/111.txt
x mimvp-blog/folder01/222.txt
x mimvp-blog/folder01/333.txt
$ 
$ cd mimvp-blog
$ tree
.
|____222.txt
|____333.txt
|____folder01
| |____111.txt
| |____222.txt
| |____333.txt

 

 

参考推荐

zip、tar 命令加密和解密压缩文件

Linux下tar、bz、gz等压缩包的压缩和解压

Windows如何压缩tar.gz格式

Python学习入门(16)——zipfile

ZIP压缩算法详细分析及解压实例

WordPress:开启gzip压缩方法

Apache 启用 GZIP 压缩网页传输方法