sftp> grep "hello" login.php
Invalid command.
我在包含login.php的目录中。
答案1
sftp
只是一个文件传输工具:它支持上列出的一组特定命令它的手册页。请man sftp
在您自己的系统上运行,以查看您的特定 sftp 版本的 sftp 命令的准确列表。
为了能够grep
在远程文件上运行,应该发生以下两种情况之一:
文件传输工具可能会将远程文件呈现为本地文件系统,并在需要时将每个访问的文件的内容传输到您的计算机。然后您可以使用系统的常规
grep
实用程序来搜索内容。该sshfs
工具可以做到这一点。显然,文件系统的响应速度sshfs
会比真正的本地文件系统慢。或者文件传输工具可能会
grep
在远程系统上运行命令并仅将结果返回给您。但是文件传输工具必须grep
专门支持远程操作,并且远程服务器也必须支持该特定操作,或者允许以登录用户身份运行任意命令。但后者正是该命令已经执行的操作,因此该命令复制该功能ssh
是没有意义的。sftp
此外,所支持的操作集sftp
是专门选择的,以将操作限制为仅与文件传输相关的操作。这样做的价值在于,远程系统管理员可能会选择允许您sftp
访问,但不允许您登录并运行任意命令。
如果用户只有一组众所周知的、有限的可用操作,则系统管理员(或设计安全环境的系统架构师)可以有效地推断出用户可以做什么或不能做什么(如果他们发现)是恶意的。如果用户可以使用完整的开放式命令行工具集,那么该任务将变得更加困难。
答案2
您可以将 sftp 文件夹挂载到您有权执行任何命令的主机。在那里您可以根据需要操作该文件夹。