如何用一條命令複製多個檔案至遠端的不同目錄

2021-09-14 04:40:20 字數 1527 閱讀 9137

你想複製複製多個檔案至遠端的不同目錄,一般使用scp。但scp不允許你在一條命令上指定多個目標位址,所以只好使用多條scp命令。

scp -v /file/source1/* username@host_server:/file/destination1

scp -v /file/source2/* username@host_server:/file/destination2

scp -v /file/source3/* username@host_server:/file/destination3

怎樣用一條命令複製多個檔案至遠端的不同目錄?

最簡單的方案是使用sshfs對映遠端位址到本地,然後用cp命令。這需要訪問sftp。

mkdir host_server

sshfs username@host_server:/file host_server

cp /file/source1/* host_server/destination1

cp /file/source2/* host_server/destination2

cp /file/source3/* host_server/destination3

fusermount -u host_server

rmdir host_server

另乙個方案是,先在本地整理好檔案,然後複製整個結構。這需要rsync

mkdir destination1 destination2 destination3

ln -s /file/source1/* destination1

ln -s /file/source2/* destination2

ln -s /file/source3/* destination3

rsync -a --copy-unsafe-links destination1 destination2 destination3 username@host_server:/file

rm -r destination1 destination2 destination3

第三個是繼續使用scp,但需要先開通乙個master connection指向伺服器。

在~/.ssh/config中加入

controlmaster auto

controlpath ~/.ssh/control:%h:%p:%r

如果你你啟動乙個與既存的連線的指向(user, port, machine)相同的ssh session,第二個session會被隧道化至第乙個。建立第二個連線無需再次認證,並且速度很快。

你可以繼續使用scp,但避免每次都輸入使用者名稱密碼。

建立乙個key pair,然後把私鑰注入key agentssh-add ~/.ssh/id_rsa,這樣你在每次連線時就無需鍵入任何內容了。

不過方案三和方案四隻是折中方案。

參考:

Linux中如何一條命令建立多個資料夾

建立資料夾 make directory 縮寫就是 mkdir 見名知意 在linux中建立資料夾使用的是mkdir 在當前目錄下建立乙個資料夾 mkdir dirname在當前目錄下建立多個資料夾 mkdir dirname1 dirname2 dirname3建立乙個資料夾,並給它建立多個子資料...

go orm如何多個協程並行更新一條記錄

最近遇到乙個問題,兩個go協程裡要同時更新同乙個記錄的不同字段 buy和sell 踩了一天的坑,才找到正確的方式。首先想到的是使用 o orm.neworm o.update rices 但是發現會出現buy或者sell乙個為空的情況。之後再這裡看到可以使用這種方式 建立orm物件 o orm.ne...

linux一條命令設定資料夾和檔案許可權

雖然我們在vps上搭建 比 比較自由,但是空間的安全設定都需要我們自己來做。一旦 空間或者網頁的不安全,可能會通過提權的方式影響其他的 當然,具體的安全老左不是太懂。主要是今天上午在遇到乙個問題,由於轉移出來的 檔案都是777許可權,然後搬遷至主機中導致403錯誤提示,這是需要我們對所有的資料夾設定...