Unix:SFTP中重定向操作员和管道操作员相关命令

Unix:SFTP中重定向操作员和管道操作员相关命令

问题描述:

如何在SFTP中使用重定向操作员和管道操作员相关命令?Unix:SFTP中重定向操作员和管道操作员相关命令

目前我已经通过SSHPASS连接到SFTP如下

[[email protected] test]$ sshpass -e sftp -o BatchMode=no -b - [email protected]:/Restore 
Changing to: /Restore 
pwd 

sftp> pwd 
Remote working directory: /Restore 

再次,

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的输出位于SFTP提示-ltr结果文件,这很好。

但是,

我需要一个命令来查看/ LS获得的重定向输出-ltr与| (流水线操作)和位于SFTP提示去年1个文件名

虽然发送与管道运营商的命令(|)在SFTP提示 - 服务器抛出“无法统计远程文件:没有这样的文件或目录”

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** 

[[email protected] test]$ 

如何与SFTP管道和重定向操作提示工作?

简短的回答是“|”对sftp“ls”命令没有特殊含义。

sftp> !ls -ltr | tail -1 

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

sftp> ls -ltr | tail -1 

在这里,您使用的SFTP的“ls”命令列出名为“!”,“尾巴”远程文件的信息,也许“-1”。您收到的错误消息表示没有名为“|”的远程文件。

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

+0

感谢您的更新。同时,你有任何想法,即如何从sftp提示符显示最后一个修改过的文件。我需要为自动化采取最后修改的最后一个文件。 –