有没有办法做一个远程“LS”很像“SCP”远程复制在标准的Linuxshell?
你总是可以这样做:
ssh user@host ls -l /some/directory
这将SSH连接到主机,运行ls,将输出转储回给您,并立即断开连接。
列出目录中的所有文件:
rsync host.name.com:directory/path/'*'
对于像find / path -ls这样的东西
rsync -r host.name.com:directory/path
是。 SSH和做一个ls :
ssh host ls /path
你可以很容易地编写脚本来更灵活,或者使用scp使用的host:path语法。
我发现我最经常使用的是获取ls结果,一个没有所有权限和date等的简单文件列表,并将其保存在本地文件中。
{ ssh [email protected] "cd /dir/of/interest; ls -1f *.txt;" } > /home/me/listoffiles.txt
你可以在引号内运行任何你想要的东西。 所有输出结束在您的本地文本文件。 或者,如果你想在服务器上运行一个非常糟糕的脚本,并捕获所有的输出,甚至是错误:
{ ssh [email protected] <script.remote.sh } > /home/me/output.log 2>/home/me/output.err
对于所有通过谷歌来到这个问题,因为他们正在寻找一种方式来列出远程文件,但不能通过ssh访问远程服务器(常见的备份服务器),你可以使用'sftp'。
例:
sftp [email protected] ls cd somedir exit
在特定的远程目录中启动交互式会话:
sftp [user@]host[:dir]