Linux中實(shí)現(xiàn)文件復(fù)制與遷移的命令詳解
一、scp 命令
復(fù)制文件:
scp -r /Users/test/Downloads/home/* root@39.11.11.15:/usr/share/nginx/html
二、rsync 命令
先創(chuàng)建文件夾
rsync -avz -e ssh /Users/test/Downloads/home/* root@39.11.11.15:/usr/share/nginx/html/
在使用 scp 命令進(jìn)行遠(yuǎn)程復(fù)制時(shí),如果目標(biāo)目錄不存在,scp 命令本身不會(huì)自動(dòng)創(chuàng)建目標(biāo)目錄。你需要在執(zhí)行 scp 命令之前,先通過(guò) SSH 連接到遠(yuǎn)程服務(wù)器并創(chuàng)建目標(biāo)目錄。

以下是修改后的步驟:
- 創(chuàng)建目標(biāo)目錄:首先通過(guò) SSH 連接到遠(yuǎn)程服務(wù)器,然后創(chuàng)建目標(biāo)目錄。
- 使用
scp命令復(fù)制文件:在目標(biāo)目錄創(chuàng)建完成后,使用scp命令復(fù)制文件。
以下是具體的命令:
# 1. SSH 連接到遠(yuǎn)程服務(wù)器 ssh root@39.11.11.15 # 2. 在遠(yuǎn)程服務(wù)器上創(chuàng)建目標(biāo)目錄(如果不存在) mkdir -p /usr/share/nginx/html/home # 3. 退出 SSH 連接 exit # 4. 使用 scp 命令復(fù)制文件 scp -r /Users/test/Downloads/home/* root@39.11.11.15:/usr/share/nginx/html/home
解釋:
ssh root@39.11.11.15:通過(guò) SSH 連接到遠(yuǎn)程服務(wù)器。mkdir -p /usr/share/nginx/html/home:創(chuàng)建目標(biāo)目錄,-p參數(shù)確保目錄的父目錄也會(huì)被創(chuàng)建。exit:退出 SSH 連接。scp -r /Users/test/Downloads/home/* root@39.11.11.15:/usr/share/nginx/html/home:使用scp命令復(fù)制文件到目標(biāo)目錄。
如果你希望在一個(gè)命令中完成這些操作,可以使用 rsync 命令,它在復(fù)制文件之前會(huì)自動(dòng)創(chuàng)建目標(biāo)目錄:
rsync -avz -e ssh /Users/test/Downloads/home/ root@39.11.11.15:/usr/share/nginx/html/home/
解釋:
rsync:是一個(gè)更強(qiáng)大的文件同步工具。-avz:表示增量傳輸、保留文件權(quán)限、壓縮數(shù)據(jù)。-e ssh:指定使用 SSH 進(jìn)行傳輸。/Users/test/Downloads/home/:本地源目錄。root@39.11.11.15:/usr/share/nginx/html/home/:遠(yuǎn)程目標(biāo)目錄。
這樣,rsync 會(huì)自動(dòng)創(chuàng)建目標(biāo)目錄并復(fù)制文件。
三、方法補(bǔ)充
常用遷移文件操作如下:
CP命令(常用于本機(jī)操作)
cp 是 Linux 中最基本的文件復(fù)制命令,語(yǔ)法:cp [選項(xiàng)] 源文件 目標(biāo)文件
選項(xiàng)說(shuō)明:
-r或-R:遞歸復(fù)制目錄及其內(nèi)容(用于復(fù)制目錄)。-i:交互模式,覆蓋前提示用戶確認(rèn)。-v:顯示詳細(xì)的復(fù)制過(guò)程(verbose)。-f:強(qiáng)制復(fù)制,覆蓋目標(biāo)文件而不提示。-p:保留文件的原始屬性(如權(quán)限、時(shí)間戳等)。-a:歸檔模式,等同于-dpR,保留所有文件屬性和遞歸復(fù)制目錄。-u:僅當(dāng)源文件比目標(biāo)文件新時(shí)才復(fù)制(更新模式)。-l:創(chuàng)建硬鏈接而不是復(fù)制文件。-s:創(chuàng)建符號(hào)鏈接(軟鏈接)而不是復(fù)制文件。
# 將 file1.txt 復(fù)制為 file2.txt cp file1.txt file2.txt # 將 file1.txt 復(fù)制到指定目錄 cp file1.txt /home/user/documents/
rcp命令(常用于遠(yuǎn)程操作)
rcp用在遠(yuǎn)端復(fù)制文件或目錄到本地。語(yǔ)法:rcp [-pr][源文件或目錄](méi)[目標(biāo)文件或目錄](méi)
或 rcp [-pr][源文件或目錄...][目標(biāo)文件]
選項(xiàng)說(shuō)明:
-r:遞歸處理,將指定目錄下的文件與子目錄一并處理(用于復(fù)制目錄)。-p:保留源文件或目錄的屬性,包括擁有者,所屬群組,權(quán)限與時(shí)間。
#復(fù)制遠(yuǎn)程文件到本地 rcp root@192.168.8.88:./test.txt test.txt
SCP命令(常用于安全遠(yuǎn)程操作)
scp 是加密的,更加安全的操作,rcp 是不加密的,scp 是 rcp 的升級(jí)加強(qiáng)版。
語(yǔ)法:scp [選項(xiàng)] [源文件] [目標(biāo)路徑]
常用選項(xiàng)說(shuō)明:
-r:遞歸復(fù)制整個(gè)目錄。-P:指定遠(yuǎn)程主機(jī)的 SSH 端口號(hào)(默認(rèn)是 22)。-p:保留文件的修改時(shí)間、訪問(wèn)時(shí)間和權(quán)限。-v:顯示詳細(xì)的調(diào)試信息,有助于排查問(wèn)題。-C:?jiǎn)⒂脡嚎s,可以加快傳輸速度。
例如:本機(jī)文件上傳到遠(yuǎn)程機(jī)器
語(yǔ)法:
scp [選項(xiàng)] 本地文件路徑 用戶名@遠(yuǎn)程主機(jī)地址:遠(yuǎn)程目錄路徑
使用:
scp /path/to/local/file.txt user@remotehost:/path/to/remote/directory/
?反之遠(yuǎn)程機(jī)器文件到本機(jī)
語(yǔ)法:
scp [選項(xiàng)] 用戶名@遠(yuǎn)程主機(jī)地址:遠(yuǎn)程目錄路徑 本地文件路徑
使用:
scp user@remotehost:/path/to/remote/directory/file.txt /path/to/local/
?如果是到當(dāng)前目錄可以是
scp user@remotehost:/path/to/remote/directory/file.txt .
這個(gè)命令中:
user@remotehost:/path/to/remote/directory/file.txt是遠(yuǎn)程主機(jī)上的文件路徑。.表示當(dāng)前目錄。
使用 rsync 命令
是 Linux 系統(tǒng)中一個(gè)功能強(qiáng)大的文件同步工具,它能夠高效地在本地或遠(yuǎn)程系統(tǒng)之間同步文件和目錄。語(yǔ)法:rsync [選項(xiàng)] 源文件 目標(biāo)文件
rsync 的特點(diǎn)
- 增量同步:僅傳輸變化的文件部分,節(jié)省帶寬和時(shí)間
- 保留屬性:可以保持文件權(quán)限、時(shí)間戳等元數(shù)據(jù)
- 壓縮傳輸:支持?jǐn)?shù)據(jù)傳輸時(shí)壓縮,減少網(wǎng)絡(luò)負(fù)載
- 靈活排除:可以排除特定文件或目錄
- 遠(yuǎn)程支持:通過(guò) SSH 安全地同步遠(yuǎn)程服務(wù)器文件
還可以支持機(jī)器之間實(shí)時(shí)同步文件
常用選項(xiàng)說(shuō)明:
- -a(archive): 以歸檔模式傳輸文件,保持文件屬性,保留符號(hào)鏈接、權(quán)限、時(shí)間戳等。
- -v(verbose): 顯示詳細(xì)的傳輸信息。
- -r(recursive): 遞歸傳輸文件夾及其子文件夾。
- -z(compress): 在傳輸過(guò)程中壓縮文件,減少數(shù)據(jù)量。
- --delete: 刪除目標(biāo)路徑中源路徑不存在的文件。
- --exclude: 排除特定的文件或文件夾,不進(jìn)行同步。
- --progress: 顯示傳輸進(jìn)度信息。
- -e: 指定遠(yuǎn)程shell連接命令,如SSH。
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進(jìn)行斷點(diǎn)續(xù)傳的一些示例:
從本地上傳文件到服務(wù)器
rsync -P -t -r -v -e [待傳輸文件] usr@IP:[接收目錄](méi)
從服務(wù)器下載文件到本地
rsync -P -t -r -v -e usr@IP:[待傳輸文件] [接收目錄](méi)
本地文件夾同步
rsync -av /path/to/source /path/to/destination
遠(yuǎn)程主機(jī)同步
rsync -azv -e ssh /path/to/source remote_host:/path/to/destination
刪除目標(biāo)多余文件
rsync -av --delete /path/to/source /path/to/destination
排除特定文件和目錄
rsync -av --exclude='logs' --exclude='temp' /path/to/source /path/to/destination
注意事項(xiàng):在使用rsync進(jìn)行斷點(diǎn)續(xù)傳時(shí),需要注意以下幾點(diǎn):
確保兩臺(tái)機(jī)器的時(shí)間同步,以避免因時(shí)間差異導(dǎo)致文件傳輸錯(cuò)誤。
使用-P參數(shù),它是--partial和--progress的組合,可以在顯示傳輸進(jìn)度的同時(shí)支持?jǐn)帱c(diǎn)續(xù)傳。
傳輸過(guò)程中,rsync會(huì)在目標(biāo)目錄下生成一個(gè)臨時(shí)文件,可以通過(guò)ls -a命令查看。這個(gè)臨時(shí)文件在下次傳輸時(shí)會(huì)被用來(lái)繼續(xù)傳輸,從而實(shí)現(xiàn)斷點(diǎn)續(xù)傳。
其他方法:使用CURL或WGET(適用于HTTP/HTTPS操作)
需要通過(guò)HTTP或HTTPS協(xié)議上傳文件到服務(wù)器(例如,使用某些Web服務(wù)),可以使用curl或wget。
使用CURL上傳文件:
curl -X POST -F "file=@/path/to/local/file.txt" http://remotehost/upload.php #或者,如果服務(wù)器支持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也都是可以實(shí)現(xiàn)的。至此就可以進(jìn)行文件移動(dòng)操作了
到此這篇關(guān)于Linux中實(shí)現(xiàn)文件復(fù)制與遷移的命令詳解的文章就介紹到這了,更多相關(guān)Linux文件復(fù)制與遷移內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux?VNC安裝ssh后ssh無(wú)法登錄的解決方案
VNC?服務(wù)器不能使用?SSH?22?端口登錄的問(wèn)題可能由多種原因引起,本文給大家介紹了Linux?VNC安裝ssh后ssh無(wú)法登錄的解決方案,文中通過(guò)有詳細(xì)解決方案,需要的朋友可以參考下2024-11-11
阿里云Centos7.X 如何對(duì)外開(kāi)放端口的方法步驟
這篇文章主要介紹了阿里云Centos7.X 如何對(duì)外開(kāi)放端口,本文通過(guò)圖文并茂實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
apache虛擬主機(jī)中設(shè)置泛域名解析的方法
apache虛擬主機(jī)中設(shè)置泛域名解析,主要是用到ServerAlias 的配置,供大家學(xué)習(xí)參考2013-02-02
詳解怎樣在Linux中配置靜態(tài)網(wǎng)絡(luò)連接
這篇文章主要介紹了詳解怎樣在Linux中配置靜態(tài)網(wǎng)絡(luò)連接,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05
linux定時(shí)任務(wù)訪問(wèn)url實(shí)例
本篇文章主要介紹了linux定時(shí)任務(wù)訪問(wèn)url實(shí)例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06
Apache加速模塊mod_pagespeed安裝使用詳細(xì)介紹
這篇文章主要介紹了Apache加速模塊mod_pagespeed安裝使用詳細(xì)介紹,需要的朋友可以參考下2014-03-03

