Sftp

從 sftp 擷取遠端文件

  • November 5, 2020

我在一個 SFTP 會話中並導航到一個深層目錄。我做到了ls -l,看到了一個小文件,只想閱讀它。我寧願在我還在 SFTP 中時執行此操作,而不是啟動一個新終端、執行 SSH、導航到該深層目錄,然後讀取它,然後返回 SFTP 繼續。

有沒有辦法做到這一點?

SFTP 沒有cat命令。

我試過get file -了,希望它會被-視為標準輸出,但這只會創建一個名為“-”的文件。

我試過get file /dev/stdout了,但結果是:

sftp> get file /dev/stdout
Fetching /home/username/file to /dev/stdout
/home/username/file                100%  506     9.0KB/s   00:00
ftruncate "/dev/stdout": Invalid argument
Couldn't write to "/dev/stdout": Illegal seek

另一種方法可能是get file /tmp/file,退出 SFTP,讀取 /tmp/file,刪除 /tmp/file,然後返回 SFTP,但這同樣乏味。有沒有簡單的方法?

在 sftp 中有 cat 意味著文件的內容仍然必須通過網路傳輸到您的本地電腦,才能顯示給您的眼睛,這基本上就是您獲取文件。您不必像 sftp 那樣“退出 SFTP” !command

所以,你可以這樣做:

sftp> get file
sftp> !cat file

您不能通過 sftp 執行 cat,因為它是專門為文件傳輸而設計的。您可以檢查“man sftp”以查找在互動式 shell 中可以使用的命令列表。

引用自:https://unix.stackexchange.com/questions/618182