2017-08-08 100 views
-1

如何在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管道和重定向操作提示工作?

回答

0

簡短的回答是「|」對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提示符顯示最後一個修改過的文件。我需要爲自動化採取最後修改的最後一個文件。 –