Linux中實現(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 命令進行遠程復(fù)制時,如果目標目錄不存在,scp 命令本身不會自動創(chuàng)建目標目錄。你需要在執(zhí)行 scp 命令之前,先通過 SSH 連接到遠程服務(wù)器并創(chuàng)建目標目錄。

以下是修改后的步驟:
- 創(chuàng)建目標目錄:首先通過 SSH 連接到遠程服務(wù)器,然后創(chuàng)建目標目錄。
- 使用
scp命令復(fù)制文件:在目標目錄創(chuàng)建完成后,使用scp命令復(fù)制文件。
以下是具體的命令:
# 1. SSH 連接到遠程服務(wù)器 ssh root@39.11.11.15 # 2. 在遠程服務(wù)器上創(chuàng)建目標目錄(如果不存在) 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:通過 SSH 連接到遠程服務(wù)器。mkdir -p /usr/share/nginx/html/home:創(chuàng)建目標目錄,-p參數(shù)確保目錄的父目錄也會被創(chuàng)建。exit:退出 SSH 連接。scp -r /Users/test/Downloads/home/* root@39.11.11.15:/usr/share/nginx/html/home:使用scp命令復(fù)制文件到目標目錄。
如果你希望在一個命令中完成這些操作,可以使用 rsync 命令,它在復(fù)制文件之前會自動創(chuàng)建目標目錄:
rsync -avz -e ssh /Users/test/Downloads/home/ root@39.11.11.15:/usr/share/nginx/html/home/
解釋:
rsync:是一個更強大的文件同步工具。-avz:表示增量傳輸、保留文件權(quán)限、壓縮數(shù)據(jù)。-e ssh:指定使用 SSH 進行傳輸。/Users/test/Downloads/home/:本地源目錄。root@39.11.11.15:/usr/share/nginx/html/home/:遠程目標目錄。
這樣,rsync 會自動創(chuàng)建目標目錄并復(fù)制文件。
三、方法補充
常用遷移文件操作如下:
CP命令(常用于本機操作)
cp 是 Linux 中最基本的文件復(fù)制命令,語法:cp [選項] 源文件 目標文件
選項說明:
-r或-R:遞歸復(fù)制目錄及其內(nèi)容(用于復(fù)制目錄)。-i:交互模式,覆蓋前提示用戶確認。-v:顯示詳細的復(fù)制過程(verbose)。-f:強制復(fù)制,覆蓋目標文件而不提示。-p:保留文件的原始屬性(如權(quán)限、時間戳等)。-a:歸檔模式,等同于-dpR,保留所有文件屬性和遞歸復(fù)制目錄。-u:僅當源文件比目標文件新時才復(fù)制(更新模式)。-l:創(chuàng)建硬鏈接而不是復(fù)制文件。-s:創(chuàng)建符號鏈接(軟鏈接)而不是復(fù)制文件。
# 將 file1.txt 復(fù)制為 file2.txt cp file1.txt file2.txt # 將 file1.txt 復(fù)制到指定目錄 cp file1.txt /home/user/documents/
rcp命令(常用于遠程操作)
rcp用在遠端復(fù)制文件或目錄到本地。語法:rcp [-pr][源文件或目錄][目標文件或目錄]
或 rcp [-pr][源文件或目錄...][目標文件]
選項說明:
-r:遞歸處理,將指定目錄下的文件與子目錄一并處理(用于復(fù)制目錄)。-p:保留源文件或目錄的屬性,包括擁有者,所屬群組,權(quán)限與時間。
#復(fù)制遠程文件到本地 rcp root@192.168.8.88:./test.txt test.txt
SCP命令(常用于安全遠程操作)
scp 是加密的,更加安全的操作,rcp 是不加密的,scp 是 rcp 的升級加強版。
語法:scp [選項] [源文件] [目標路徑]
常用選項說明:
-r:遞歸復(fù)制整個目錄。-P:指定遠程主機的 SSH 端口號(默認是 22)。-p:保留文件的修改時間、訪問時間和權(quán)限。-v:顯示詳細的調(diào)試信息,有助于排查問題。-C:啟用壓縮,可以加快傳輸速度。
例如:本機文件上傳到遠程機器
語法:
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 .
這個命令中:
user@remotehost:/path/to/remote/directory/file.txt是遠程主機上的文件路徑。.表示當前目錄。
使用 rsync 命令
是 Linux 系統(tǒng)中一個功能強大的文件同步工具,它能夠高效地在本地或遠程系統(tǒng)之間同步文件和目錄。語法:rsync [選項] 源文件 目標文件
rsync 的特點
- 增量同步:僅傳輸變化的文件部分,節(jié)省帶寬和時間
- 保留屬性:可以保持文件權(quán)限、時間戳等元數(shù)據(jù)
- 壓縮傳輸:支持數(shù)據(jù)傳輸時壓縮,減少網(wǎng)絡(luò)負載
- 靈活排除:可以排除特定文件或目錄
- 遠程支持:通過 SSH 安全地同步遠程服務(wù)器文件
還可以支持機器之間實時同步文件
常用選項說明:
- -a(archive): 以歸檔模式傳輸文件,保持文件屬性,保留符號鏈接、權(quán)限、時間戳等。
- -v(verbose): 顯示詳細的傳輸信息。
- -r(recursive): 遞歸傳輸文件夾及其子文件夾。
- -z(compress): 在傳輸過程中壓縮文件,減少數(shù)據(jù)量。
- --delete: 刪除目標路徑中源路徑不存在的文件。
- --exclude: 排除特定的文件或文件夾,不進行同步。
- --progress: 顯示傳輸進度信息。
- -e: 指定遠程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進行斷點續(xù)傳的一些示例:
從本地上傳文件到服務(wù)器
rsync -P -t -r -v -e [待傳輸文件] usr@IP:[接收目錄]
從服務(wù)器下載文件到本地
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進行斷點續(xù)傳時,需要注意以下幾點:
確保兩臺機器的時間同步,以避免因時間差異導(dǎo)致文件傳輸錯誤。
使用-P參數(shù),它是--partial和--progress的組合,可以在顯示傳輸進度的同時支持斷點續(xù)傳。
傳輸過程中,rsync會在目標目錄下生成一個臨時文件,可以通過ls -a命令查看。這個臨時文件在下次傳輸時會被用來繼續(xù)傳輸,從而實現(xiàn)斷點續(xù)傳。
其他方法:使用CURL或WGET(適用于HTTP/HTTPS操作)
需要通過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也都是可以實現(xiàn)的。至此就可以進行文件移動操作了
到此這篇關(guān)于Linux中實現(xiàn)文件復(fù)制與遷移的命令詳解的文章就介紹到這了,更多相關(guān)Linux文件復(fù)制與遷移內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Ubuntu20.04沒有wifi的解決方案(Realtek版本)
本文介紹了如何在Ubuntu下手動安裝無線網(wǎng)卡驅(qū)動,避免了需要在Windows下查看網(wǎng)卡型號的麻煩,通過終端命令查看網(wǎng)卡型號,使用git下載驅(qū)動文件并將其放置在/lib/firmware/rtw89目錄下,然后激活相應(yīng)內(nèi)核,最后重啟系統(tǒng)以解決沒有WiFi的問題2026-03-03
ubuntu開機后使用使用終端運行應(yīng)用程序的設(shè)置方法
這篇文章主要給大家介紹了關(guān)于ubuntu開機后使用使用終端運行應(yīng)用程序的設(shè)置方法,文中通過圖文介紹的非常詳細,對大家學(xué)習(xí)或者使用Mubuntu具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
Linux強制釋放占用端口以及Linux防火墻端口開放方法詳解
在linux系統(tǒng)中安裝一些軟件時有時遇到端口被占用的情況,本文為大家介紹了遇到這種情況我們應(yīng)該怎么處理2018-10-10

