如何在SFTP中使用重定向运算符和管道运算符相关命令?
目前我已经通过SSHPASS连接到SFTP,如下所示
[oouser@SVSATVMWHOST03-SITHPOO test]$ sshpass -e sftp -o BatchMode=no -b - backup_sftp@10.58.44.207:/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
这给出了位于 sftp 提示符中的 ls -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**
[oouser@SVSATVMWHOST03-SITHPOO test]$
如何在SFTP提示符下使用管道和重定向操作?
简短的回答是"|"对sftp
"ls"命令没有特殊含义。
sftp> !ls -ltr | tail -1
在这里,您使用 sftp "!" 命令在本地系统上运行命令。行的其余部分ls -ltr | tail -1
将传递到本地 shell。Sftp 不解释此行中的"|";你的外壳可以。其中唯一对 sftp 特别的部分是前导"!"。
sftp> ls -ltr | tail -1
在这里,您使用 sftp "ls" 命令列出名为 "!"、"tail" 和 "-1" 的远程文件的信息。您收到的错误消息指示没有名为"|"的远程文件。
据我所知,命令行sftp
实用程序不支持单个交互式命令的重定向和管道。