cat 来自 sftp 的远程文件

cat 来自 sftp 的远程文件

我正在 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,但这同样乏味。有简单的方法吗?

答案1

在 sftp 中使用 cat 意味着文件的内容仍然需要通过网络传输到本地计算机,才能显示在您的眼前,这基本上就是您获得文件。您不必像 sftp 那样“退出 SFTP” !command

所以,你可以这样做:

sftp> get file
sftp> !cat file

答案2

您无法通过 sftp 执行 cat,因为它是专门为文件传输而设计的。您可以检查“man sftp”来查找在交互式 shell 中可以使用的命令列表。

相关内容