linux之间传文件命令之Rsync傻瓜式教程
bigegpt 2025-05-25 10:57 41 浏览
1. 前言
linux之间传文件命令用什么命令?本文介绍一种最常用,也是功能强大的文件同步和传输工具Rsync,本文提供详细傻瓜式教程。
在本教程中,我们将通过实际使用案例和最常见的rsync选项的详细说明向您展示如何使用rsync。
本教程适用于Ubuntu系统、Linux Mint系统、Deepin深度Linux系统、Fedora系统、Debian系统、Elementary OS系统、OpenSUSE系统、CentOS系统、RHEL系统,Arch Linux等等GNU Linux发行版。
2. `rsync`介绍
Rsync是一个快速且通用的命令行实用程序,它可以使Windows与Linux之间,Linux与Linux之间传文件或者Linux与MAC OS之间传文件。或从Linux本地文件系统到远程Rsync守护进程之间同步文件和文件夹。它只传输源和目标之间的差异,从而提供快速增量文件传输。
Rsync可以用于镜像数据、增量备份、在Linux系统之间传文件,也可以用于Linux与Windows之间传输文件,还可以替代日常使用的scp、sftp和cp命令,他们一般也用于Linux之间传文件或者Linux与MAC OS之间传文件。
3. 如何安装`Rsync`
rsync实用程序预装在大多数Linux发行版和macOS上。你可以输入以下命令,检查你的系统是否已安装:
查看Rsync版本的输出结果:
如果您的系统上没有安装rsync,您可以使用发行版的包管理器轻松地安装它。
在Ubuntu 或者Debian体系的Linux系统上安装rsync
在CentOS 或者Fedora系统上安装rsync
4. Rsync命令使用语法
在讨论如何使用rsync命令之前,让我们先回顾一下基本语法。
rsync实用程序表达式采用以下形式:
- OPTION - rsync参数选项.
- SRC - 源目录.
- DEST - 目标目录.
- USER - 远程用户名.
- HOST - 远程主机名或域名或IP地址.
rsync提供了许多选项来控制其行为和功能。最广泛使用的选项是:
-a, --archive, 归档模式, 相当于 -rlptgoD。这个选项告诉rsync递归地同步目录、传输特殊设备和块设备、保存符号链接、修改时间、组、所有权和权限。
-z, --compress. 这个选项将强制rsync在传送文件到目标计算机时压缩数据。仅当到远程计算机的连接很慢时才使用此选项。
-P, 相当于--partial --progress。使用此选项时,rsync将在传输期间显示一个进度条,并保留部分传输的文件。当通过缓慢或不稳定的网络连接传输大文件时,它非常有用。
--delete. 使用此选项时,rsync将从目标位置删除无关文件。它对镜像很有用。
-q, --quiet。如果希望禁用非错误消息,请使用此选项。
-e. 此选项允许您选择不同的远程shell。默认情况下,rsync被配置为使用ssh。
5. 使用Rsync最基本的功能使Linux之间传输文件
要将一个文件从一个本地位置复制到另一个本地位置,可以运行以下命令:
运行该命令的用户必须具有目标位置上的读权限和目标上的写权限。
从目标位置省略文件名将复制具有当前名称的文件。如果您想将文件保存在另一个名称下,请在目标部件上指定新名称:
比如复制filename.zip到目标目录并重新把文件名修改为newfilename.zip
在下面的例子中,我们正在创建一个本地备份我们的网站文件:
如果目标目录不存在,rsync将创建它。
值得一提的是,rsync对后面带有斜杠/的源目录提供了不同的处理。如果在源目录上添加一个尾随斜杠,它将只将目录的内容复制到目标目录。当后面的斜杠被省略时,rsync将把源目录复制到目标目录中。
6. 如何使用Rsync与远程服务器同步文件(包括上传下载)
当使用rsync进行远程传输时,必须同时安装在源机器和目标机器上。rsync的新版本被配置为使用SSH作为默认远程shell。
在下面的例子中,我们将一个目录从本地转移到远程机器:
如果您还没有为远程机器设置无密码SSH登录,将要求您输入用户密码。
如果你需要配置2台Linux之间免密码登录,请查看以下教程:
如果你想把数据从远程传输到本地机器,你需要使用远程位置作为一个源:
如果远程主机上的SSH监听的端口不是默认的22端口,那么可以使用-e选项指定端口:
比如远程服务器的SSH端口被修改为1234
当传输大量数据时,建议在屏幕会话中运行rsync命令或使用-P选项:
7. 使用Rsync传送或同步文件时,排除某些文件或者目录
当使用Rsync排除文件或目录时,需要使用它们到源位置的相对路径。
有两个选项可以排除文件和目录。第一个选项是使用--exclude参数,并在命令行中指定要排除的文件和目录。
在下面的例子中,我们排除了位于src_directory中的123和abc目录:
第二个选项是使用--exclude-from参数,并指定要在文件中排除的文件和目录。
vi exclude-file.txt
加入需要排除的文件,比如文件file1.c,目录zcwyou:
8. 总结
在本教程中,您学习了如何使用Rsync在多台Linux之间传输、复制或同步文件和目录。在Rsync用户手册页面上有更多关于Rsync的内容。
如果你有任何问题,请留下你的意见。
本文已同步至博客站,尊重原创,转载时请在正文中附带以下链接:
https://www.linuxrumen.com/rmxx/1428.html
点击了解更多,快速查看更多的技术文章列表。
相关推荐
- Go语言泛型-泛型约束与实践(go1.7泛型)
-
来源:械说在Go语言中,Go泛型-泛型约束与实践部分主要探讨如何定义和使用泛型约束(Constraints),以及如何在实际开发中利用泛型进行更灵活的编程。以下是详细内容:一、什么是泛型约束?**泛型...
- golang总结(golang实战教程)
-
基础部分Go语言有哪些优势?1简单易学:语法简洁,减少了代码的冗余。高效并发:内置强大的goroutine和channel,使并发编程更加高效且易于管理。内存管理:拥有自动垃圾回收机制,减少内...
- Go 官宣:新版 Protobuf API(go pro版本)
-
原文作者:JoeTsai,DamienNeil和HerbieOng原文链接:https://blog.golang.org/a-new-go-api-for-protocol-buffer...
- Golang开发的一些注意事项(一)(golang入门项目)
-
1.channel关闭后读的问题当channel关闭之后再去读取它,虽然不会引发panic,但会直接得到零值,而且ok的值为false。packagemainimport"...
- golang 托盘菜单应用及打开系统默认浏览器
-
之前看到一个应用,用go语言编写,说是某某程序的windows图形化客户端,体验一下发现只是一个托盘,然后托盘菜单的控制面板功能直接打开本地浏览器访问程序启动的webserver网页完成gui相关功...
- golang标准库每日一库之 io/ioutil
-
一、核心函数概览函数作用描述替代方案(Go1.16+)ioutil.ReadFile(filename)一次性读取整个文件内容(返回[]byte)os.ReadFileioutil.WriteFi...
- 文件类型更改器——GoLang 中的 CLI 工具
-
我是如何为一项琐碎的工作任务创建一个简单的工具的,你也可以上周我开始玩GoLang,它是一种由Google制作的类C编译语言,非常轻量和快速,事实上它经常在Techempower的基准测...
- Go (Golang) 中的 Channels 简介(golang channel长度和容量)
-
这篇文章重点介绍Channels(通道)在Go中的工作方式,以及如何在代码中使用它们。在Go中,Channels是一种编程结构,它允许我们在代码的不同部分之间移动数据,通常来自不同的goro...
- Golang引入泛型:Go将Interface「」替换为“Any”
-
现在Go将拥有泛型:Go将Interface{}替换为“Any”,这是一个类型别名:typeany=interface{}这会引入了泛型作好准备,实际上,带有泛型的Go1.18Beta...
- 一文带你看懂Golang最新特性(golang2.0特性)
-
作者:腾讯PCG代码委员会经过十余年的迭代,Go语言逐渐成为云计算时代主流的编程语言。下到云计算基础设施,上到微服务,越来越多的流行产品使用Go语言编写。可见其影响力已经非常强大。一、Go语言发展历史...
- Go 每日一库之 java 转 go 遇到 Apollo?让 agollo 来平滑迁移
-
以下文章来源于GoOfficialBlog,作者GoOfficialBlogIntroductionagollo是Apollo的Golang客户端Apollo(阿波罗)是携程框架部门研...
- Golang使用grpc详解(golang gcc)
-
gRPC是Google开源的一种高性能、跨语言的远程过程调用(RPC)框架,它使用ProtocolBuffers作为序列化工具,支持多种编程语言,如C++,Java,Python,Go等。gR...
- Etcd服务注册与发现封装实现--golang
-
服务注册register.gopackageregisterimport("fmt""time"etcd3"github.com/cor...
- Golang:将日志以Json格式输出到Kafka
-
在上一篇文章中我实现了一个支持Debug、Info、Error等多个级别的日志库,并将日志写到了磁盘文件中,代码比较简单,适合练手。有兴趣的可以通过这个链接前往:https://github.com/...
- 如何从 PHP 过渡到 Golang?(php转golang)
-
我是PHP开发者,转Go两个月了吧,记录一下使用Golang怎么一步步开发新项目。本着有坑填坑,有错改错的宗旨,从零开始,开始学习。因为我司没有专门的Golang大牛,所以我也只能一步步自己去...
- 一周热门
- 最近发表
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- linuxlink (65)
- pythonwget (67)
- androidinclude (65)
- libcrypto.so (74)
- linux安装minio (74)
- ubuntuunzip (67)
- vscode使用技巧 (83)
- secure-file-priv (67)
- vue阻止冒泡 (67)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)