Remote
使用 SSH 在遠端伺服器上將文件從一個文件夾移動到另一個文件夾,而無需將這些文件下載到本地電腦
我有一個遠端 Debian 測試伺服器,我通過 SSH(Putty 客戶端)連接到該伺服器。我想將遠端機器上的很多文件移動到另一個文件夾:
remote: /mnt/a/ -> remote: /mnt/b/c/ RESULT@remote: /mnt/b/c/a/
我使用 move (mv) 命令從本地電腦通過 SSH 連接到遠端電腦:
mv /mnt/a/ /mnt/b/c/
我用大約 700 MB 的數據(大約 5 個文件)做到了這一點,並且複制這些文件需要很長時間。
mv 命令是否通過 SSH 將文件傳輸到本地電腦,然後將其發送回伺服器上的另一個文件夾?如果是這樣,我可以使用其他命令僅在遠端伺服器上本地移動文件嗎?
只要您的源路徑和目標路徑位於同一文件系統上,
mv
實際上就不會“移動”任何東西。它只會編輯您的目錄和文件的元數據(inode 和連結),但數據塊本身不會移動。例如,假設/home
和/srv
位於不同的文件系統上,您將觀察到以下情況:$ mv /home/bigfile.txt /home/mydir/ # Instant. $ mv /home/bigfile.txt /srv # Takes time.
如果您要將所有數據從一個文件系統移動到另一個文件系統,則必須將其從磁碟部分物理複製到另一個:需要移動數據塊,這可能需要時間(老實說,您不能做很多事情)。
通過 SSH 執行此操作不會改變任何事情。SSH 代表 Secure Shell,這意味著您將獲得一個真正的遠端 shell,而不僅僅是將您的機器用作一切的中繼。無論您通過 SSH 從遠端電腦請求什麼,都將遠端處理。