从 sftp cat 远程文件

k31*_*159 4 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
Run Code Online (Sandbox Code Playgroud)

另一种方法可能是get file /tmp/file,从 SFTP 出来,读取 /tmp/file,删除 /tmp/file,然后返回到 SFTP,但这同样乏味。有没有简单的方法?

Pou*_*rko 8

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

所以,你可以这样做:

sftp> get file
sftp> !cat file
Run Code Online (Sandbox Code Playgroud)

  • 知道有用。我猜你可能还想在下载之前执行 `lcd /tmp/` 或类似操作,这样文件就会进入你自己的 /tmp 文件夹,而不是乱扔在你运行 sftp 的任何目录中。 (4认同)