Linux

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > Linux > Linux文件复制与迁移

Linux中实现文件复制与迁移的命令详解

作者:檀越@新空间

这篇文章主要为大家详细介绍了Linux中实现文件复制与迁移的命令以及相关用法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解下

一、scp 命令

复制文件:

scp -r /Users/test/Downloads/home/* root@39.11.11.15:/usr/share/nginx/html

二、rsync 命令

先创建文件夹

rsync -avz -e ssh /Users/test/Downloads/home/* root@39.11.11.15:/usr/share/nginx/html/

在使用 scp 命令进行远程复制时,如果目标目录不存在,scp 命令本身不会自动创建目标目录。你需要在执行 scp 命令之前,先通过 SSH 连接到远程服务器并创建目标目录。

以下是修改后的步骤:

以下是具体的命令:

# 1. SSH 连接到远程服务器
ssh root@39.11.11.15

# 2. 在远程服务器上创建目标目录(如果不存在)
mkdir -p /usr/share/nginx/html/home

# 3. 退出 SSH 连接
exit

# 4. 使用 scp 命令复制文件
scp -r /Users/test/Downloads/home/* root@39.11.11.15:/usr/share/nginx/html/home

解释:

如果你希望在一个命令中完成这些操作,可以使用 rsync 命令,它在复制文件之前会自动创建目标目录:

rsync -avz -e ssh /Users/test/Downloads/home/ root@39.11.11.15:/usr/share/nginx/html/home/

解释:

这样,rsync 会自动创建目标目录并复制文件。

三、方法补充

常用迁移文件操作如下:

CP命令(常用于本机操作)

cp 是 Linux 中最基本的文件复制命令,语法:cp [选项] 源文件 目标文件

选项说明

# 将 file1.txt 复制为 file2.txt
cp file1.txt file2.txt 

# 将 file1.txt 复制到指定目录
cp file1.txt /home/user/documents/ 

rcp命令(常用于远程操作)

rcp用在远端复制文件或目录到本地。语法:rcp [-pr][源文件或目录][目标文件或目录]

或 rcp [-pr][源文件或目录...][目标文件]

选项说明

#复制远程文件到本地  
rcp root@192.168.8.88:./test.txt test.txt  

SCP命令(常用于安全远程操作)

scp 是加密的,更加安全的操作,rcp 是不加密的,scp 是 rcp 的升级加强版。

语法:scp [选项] [源文件] [目标路径]

常用选项说明

例如:本机文件上传到远程机器

语法:

scp [选项] 本地文件路径 用户名@远程主机地址:远程目录路径

 使用:

scp /path/to/local/file.txt user@remotehost:/path/to/remote/directory/

​反之远程机器文件到本机

语法:

scp [选项] 用户名@远程主机地址:远程目录路径 本地文件路径

使用: 

scp user@remotehost:/path/to/remote/directory/file.txt /path/to/local/

​如果是到当前目录可以是

scp user@remotehost:/path/to/remote/directory/file.txt .

这个命令中:

使用 rsync 命令

是 Linux 系统中一个功能强大的文件同步工具,它能够高效地在本地或远程系统之间同步文件和目录。语法:rsync [选项] 源文件 目标文件

rsync 的特点

还可以支持机器之间实时同步文件

常用选项说明

rsync -avz -e ssh /home/data/docker_data/db_data/ root@192.168.8.88:/home/software/docker_servers_data/db_data/
rsync -P -avz -e ssh /home/data/docker_data/db_data/ root@192.168.8.88:/home/software/docker_servers_data/db_data/

以下是使用rsync进行断点续传的一些示例:

从本地上传文件到服务器

rsync -P -t -r -v -e [待传输文件] usr@IP:[接收目录]

从服务器下载文件到本地

rsync -P -t -r -v -e usr@IP:[待传输文件] [接收目录]

本地文件夹同步

rsync -av /path/to/source /path/to/destination

远程主机同步

rsync -azv -e ssh /path/to/source remote_host:/path/to/destination

删除目标多余文件

rsync -av --delete /path/to/source /path/to/destination

排除特定文件和目录

rsync -av --exclude='logs' --exclude='temp' /path/to/source /path/to/destination

注意事项:在使用rsync进行断点续传时,需要注意以下几点:

确保两台机器的时间同步,以避免因时间差异导致文件传输错误。

使用-P参数,它是--partial--progress的组合,可以在显示传输进度的同时支持断点续传。

传输过程中,rsync会在目标目录下生成一个临时文件,可以通过ls -a命令查看。这个临时文件在下次传输时会被用来继续传输,从而实现断点续传。

其他方法:使用CURL或WGET(适用于HTTP/HTTPS操作)

需要通过HTTP或HTTPS协议上传文件到服务器(例如,使用某些Web服务),可以使用curlwget

使用CURL上传文件:

curl -X POST -F "file=@/path/to/local/file.txt" http://remotehost/upload.php
#或者,如果服务器支持HTTP PUT方法:
curl -T /path/to/local/file.txt http://remotehost/upload.php

使用WGET上传文件(通常用于下载,但可以模拟上传):

wget --method=PUT --body-file=/path/to/local/file.txt http://remotehost/upload.php

还有FTP或者SFTP也都是可以实现的。至此就可以进行文件移动操作了

到此这篇关于Linux中实现文件复制与迁移的命令详解的文章就介绍到这了,更多相关Linux文件复制与迁移内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文