ssh文件资源头

ssh文件资源头

这是一个奇怪的问题,但是有没有什么方法可以让我把远程资源作为 UNIX 文件进行操作?

例如,我正在寻找某种方法来完成以下任务:

head ssh://hostname:/path/to/file.txt
cat http://domain.com/file.html > local-file

我强烈怀疑答案是否定的。任何尝试此类事情的暗示也受到鼓励

答案1

本质上,SSH 没有这样的功能。

不过,你也可以用SSH文件系统,它允许您挂载远程的、可通过 SSH 访问的文件系统,然后像对待本地资源一样在本地对其进行操作。

您还可以建立 SSH 隧道来代理其他网络共享方法,例如 NFS、SMB 或 CIFS,这将再次实现类似的最终结果。

答案2

对于 SSH,您可以执行的是在远程系统上以非交互方式运行命令:

ssh hostname "head /path/to/file"

这允许您将输出重定向到本地机器上的进程:

ssh hostname "cat /path/to/file" | head

此处head在本地计算机上执行。您还可以获取本地输出并将其重定向到 SSH 会话:

cat /local/file | ssh hostname "head > /remote/file"

这将获取本地文件的内容,通过 SSH 连接将其传送到远程运行的 head,并将 head 的输出写入服务器上的文件中。

要访问 HTTP(和 HTTPS)文件并进一步在本地处理它们,选择的工具通常是curl

curl http://domain.com/file.html > local-file

这里curl在本地运行并获取 HTML 文件供您使用。但它不允许您更改远程文件,因为这不是 HTTP 协议的功能。

相关内容