溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux系統(tǒng)中怎么拷貝文件

發(fā)布時間:2021-08-11 17:10:27 來源:億速云 閱讀:172 作者:Leah 欄目:系統(tǒng)運維

Linux系統(tǒng)中怎么拷貝文件,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

首先,無論本地還是遠程,需要移動或拷貝的文件較多且都不太大時,用cp命令和mv命令效率較低,可以先使用tar工具對將要拷貝/移動的內(nèi)容進行打包/壓縮,之后再進行拷貝/移動,最后再解包/解壓縮。

另外,也是很關(guān)鍵的一個技巧,即,不必在tar打包/壓縮完畢之后再進行拷貝,解包/解壓縮,可以通過管道一邊打包/壓縮另一邊執(zhí)行拷貝解包/解壓縮。

比如,tar命令可以和nc命令結(jié)合可以快速在兩臺機器之間傳輸文件和目錄:

B機器:
nc -l 5555 |tar -C /tmp/test/ -xf -
A機器:
tar cf - /tmp/test/ |nc B'IP 5555

上述步驟將A機器/tmp/test/下的內(nèi)容拷貝到B機器對應(yīng)的目錄中,其中tar cf - /tmp/test/ |nc B'IP 5555 將內(nèi)容邊打包邊通過管道和nc命令傳輸?shù)接蓪?yīng)IP地址和5555端口傳到B機器,nc -l 5555 |tar -C /tmp/test/ -xf - 監(jiān)聽本機的555端口,并將接收到的內(nèi)容解包至指定的目錄(-C參數(shù)指定目標目錄)

此外,tar還可與scp、ssh命令結(jié)合:
在A機打包后,復(fù)制到B機器并解包
tar -cf - /tmp/test | ssh B'IP "cd /tmp; tar -xf -"
在A機打包,并將打包好的文件復(fù)制到B機
tar -cf - /tmp/test | ssh B'IP "cd /tmp; cat - > test.tar"
tar -cf - /tmp/test | scp - B'USER@B'IP:/tmp
將A機的打包文件,復(fù)制到B機并解包
zcat test.tar | ssh B'IP "cd /tmp; tar -xf -"

也可以直接在本地這么使用:

cd /tmp/test1
tar -cf - . | (cd /tmp/test2 ; tar -xvpf -)

但有人試驗后得出結(jié)論本地直接用cp較快

另外一些小技巧:
拷貝時除了拷貝單個文件還會拷貝目錄,有時需要連同文件/目錄的屬性一同拷貝??梢栽赾p命令中使用-R參數(shù)遞歸拷貝目錄,使用-p參數(shù)拷貝文件保留屬性(默認是:mode,ownership,timestamps也可以通過 --preserve[=ATTR_LIST]指定要特別保留的屬性如:context, links,xattr, all),使用-d參數(shù)拷貝文件保留連接?;蛘吆唵蔚氖褂?a參數(shù)(相當于使用-dR --preserve=all)

如果想看到拷貝大量小文件的進度可以寫一個簡單的小腳本:

代碼如下:


cd /tmp/test
for i in *
do
cp $i 目標目錄
echo $i is ok....
done

看完上述內(nèi)容,你們掌握Linux系統(tǒng)中怎么拷貝文件的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI