我正在 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 中可以使用的命令列表。