Unix:SFTP中的重定向运算符和管道运算符相关命令

时间:2017-08-08 09:46:11

标签: shell unix sftp sshpass

如何在SFTP中使用重定向运算符和管道运算符相关命令?

目前我已通过 SSHPASS 连接到 SFTP ,如下所示

ls -ltr

sftp> ls -ltr

-rw-r-----    1 1500     1500     421782831 Jul 19 12:43 mOneBackup_IMS_20170719081701.tgz

-rw-r-----    1 1500     1500     374262100 Jul 24 11:54
mOneBackup_IMS_20170724010013.tgz

再次

ls -ltr | tail -1

sftp> ls -ltr | tail -1

Couldn't stat remote file: No such file or directory
Can't ls: "/Restore/|" not found**

[oouser@SVSATVMWHOST03-SITHPOO test]$

这是给出位于sftp提示符中的ls -ltr结果文件的输出,这很好。

但是,

我需要一个命令来查看/获取ls -ltr的重定向输出和| (管道操作)和SFTP提示中的最后1个文件名

SFTP 提示符中使用管道运算符(|)发送命令时 - 服务器抛出"无法统计远程文件:没有这样的文件或目录"

{{1}}

如何在SFTP提示符下使用管道和重定向操作?

1 个答案:

答案 0 :(得分:0)

简短的回答是" |"对sftp" ls"没有特别的意义。命令。

sftp> !ls -ltr | tail -1

在这里,您正在使用sftp"!"命令在本地系统上运行命令。该行的其余部分ls -ltr | tail -1将传递给您的本地shell。 Sftp并没有解释" |"在这一行;你的shell呢。 sftp特有的唯一部分是领先的"!"。

sftp> ls -ltr | tail -1

在这里,您正在使用sftp" ls"命令列出名为"!"," tail"的远程文件的信息,也许" -1"。您收到的错误消息表明没有名为" |"的远程文件。

据我所知,命令行sftp实用程序不支持单个交互式命令的重定向和管道。