Linux

如何使用 scp MOVE 文件?

  • April 12, 2020

如何不將文件從一台伺服器複製而是移動到另一台伺服器(都是 Linux)?

man scp沒有給我任何有用的東西。我不能使用 ‘scp’ 然後 ‘rm’ 因為我必須確保文件已成功傳輸。如果傳輸過程中出現任何錯誤,則不得刪除該文件。

也許我應該以某種方式使用退出程式碼,但是如何?此外,還有很多文件,如果最後一個文件失敗,那麼保留所有成功傳輸的文件將不是一個好選擇。

也許除了SCP之外還有什麼?

rsync over ssh 可能是您最好的--remove-source-files選擇

rsync -avz --remove-source-files -e ssh /this/dir remoteuser@remotehost:/remote/dir 

快速測試給出;

[tomh@workstation001 ~]$ mkdir test1
[tomh@workstation001 ~]$ mkdir test2
[tomh@workstation001 ~]$ touch test1/testfile.1
[tomh@workstation001 ~]$ ls test1/
testfile.1
[tomh@workstation001 ~]$ rsync --remove-source-files -av -e ssh test1/testfile.1 tomh@localhost:/home/tomh/test2/
sending incremental file list

sent 58 bytes  received 12 bytes  10.77 bytes/sec
total size is 0  speedup is 0.00

[tomh@workstation001 ~]$ ls test1/
[tomh@workstation001 ~]$
[tomh@workstation001 ~]$ ls test2/
testfile.1

正如@SvenW 提到的,-e ssh是預設值,因此可以省略。

引用自:https://serverfault.com/questions/363922