Sftp
SFTP mget 和 get 命令將多個文件夾或文件複製到一個伺服器目錄
我需要使用一個命令複製同一目錄的多個文件夾。所以我先做了這個,
sftp> mget -r folder1 folder2
此命令複製
folder1
到目標伺服器,但將其重命名為folder2
.我可能應該做如下的事情。但是,我沒有嘗試
sftp> get -r folder1 && sleep 5 && get -r folder2
我沒有嘗試過,但我認為它會起作用。
有沒有更好的選擇呢?
mget
sftp 中的子命令是以下命令的別名get
:static const struct CMD cmds[] = { { "bye", I_QUIT, NOARGS }, ... { "get", I_GET, REMOTE }, { "mget", I_GET, REMOTE }, ... };
該
get
子命令的語法為:get [-afPpr] remote-path [local-path]
如果您提供
get
或mget
多個參數,它會將第二個參數視為第一個的重命名目標。因此,您無法一次檢索多個目錄;您需要單獨獲取它們:mget -r folder1 mget -r folder2
sftp 語法也不允許 shell 樣式的命令連結,所以你不能使用類似的命令:
get -r folder1 && ...
. 也沒有必要sleep
在 get 命令之間進行嘗試,除非您出於其他目的需要延遲(本地觀看過程,為網路騰出幾秒鐘的時間等)。作為 的替代方案
sftp
,請考慮scp
:scp -r user@host:folder1 user@host:folder2 /local/directory
…這將遞歸地將遠端
folder1
和folder2
目錄複製到本地/local/directory
。