在日常的开发和运维工作中,我们经常需要在不同的服务器之间传输文件。rsync 是一个非常强大的工具,它不仅可以同步文件和目录,还可以根据我们的需求跳过某些文件夹或文件类型。本文将介绍如何使用 rsync 命令跳过指定的文件夹和文件类型。
基本命令
我们使用的 rsync 命令如下:
rsync -avz -e 'ssh -p 36301' --exclude='*.pt' --exclude='*.jpg' --exclude='*.png' --exclude='images/' user@your_server_ip:/path/to/source_directory/ ./
参数详解
- -a:归档模式,表示递归传输并保持文件的权限、时间等信息。
- -v:详细模式,显示传输的详细信息。
- -z:传输时压缩文件,以减少带宽消耗。
- -e ‘ssh -p 36301’:使用 SSH 作为传输协议,并指定 SSH 端口为 36301。
- –exclude=‘*.pt’:排除所有 .pt 文件。
- –exclude=‘*.jpg’:排除所有 .jpg 文件。
- –exclude=‘images/’:排除 images 文件夹。
- user@your_server_ip:/path/to/source_directory/:源服务器和源目录,user 是用户名,your_server_ip 是服务器 IP 地址,/path/to/source_directory/ 是源目录路径。
- ./:目标目录,此处表示当前目录。
适用场景
使用 rsync 跳过指定文件夹和文件类型的场景包括但不限于:
- 备份文件时不需要备份某些大文件。
- 同步代码库时不需要同步编译生成的文件。
- 传输图片、视频等多媒体文件时不需要传输特定格式的文件。
注意事项
- 确保本地和远程服务器上都安装了 rsync。
- 使用 --exclude 参数时,路径是相对于源目录的。
- SSH 端口(-p 参数)需要根据实际情况调整。
通过上述方法,我们可以更加灵活地使用 rsync 工具进行文件同步,避免不必要的文件传输,提高效率。