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
实用程序不支持单个交互式命令的重定向和管道。
感谢您的更新。同时,你有任何想法,即如何从sftp提示符显示最后一个修改过的文件。我需要为自动化采取最后修改的最后一个文件。 –