ssh 可以返回目录列表吗?

Rad*_*dek 5 ssh

我可以通过 ssh 访问其他 Suse 框,并且我想在 suse 框上列出特定目录。它将从其他 suse 盒中完成。我稍后会从 php 运行它。

这样的事情可能吗?

Cal*_*leb 13

ssh只需将命令作为 ssh 命令的最后一个参数发送,即可返回任何远程命令的输出:

ssh user@host 'ls /path/to/dir'
Run Code Online (Sandbox Code Playgroud)

如果您有基于密钥的身份验证设置,则无需输入密码即可完成此操作。

但是,解析 的输出ls总是一个坏主意,听起来您可能有一些更高级的用例。有一个名为 SSHFS 的文件系统,它允许您挂载几乎可以通过 ssh 进入的任何文件系统。您可以挂载远程目录,以便您的 php 脚本可以对其进行操作,就好像它是一组本地文件和目录。

  • @Radek 你不需要在远程机器上运行任何特殊的东西,SSHFS 只需要正常的 SFTP 访问。在本地盒子上,您需要安装 [FUSE](http://fuse.sourceforge.net/)。 (2认同)
  • @unclejamil:这是没有必要的,因为 ls 会自动检测它的输出何时通过管道传输到某处并无论如何都返回 `-1`。更好的方法是使用 `find -maxdepth -print0` 来获取每个文件名用空值分隔的输出,这样你就可以解析它而不会改变时髦的文件名。 (2认同)