Sftp
如何通過 SFTP 列出文件和僅列出文件?
我實際上可以列出文件名,但很多不需要的東西也來自那裡。
> echo "ls *.txt" | sftp user@host:/dir Connected to 1.1.1.1. Changing to: /dir sftp> ls *.txt 1.txt 2.txt 3.txt
是否有一種經過驗證/可靠的方式來列出文件和僅列出文件?如果可能,我想避免使用
head
-like 過濾器。
使用該
-q
選項來告訴sftp
安靜**,**從而抑制您不關心的大部分輸出:echo "ls *.txt" | sftp -q user@host.example.com:/path
您仍將看到您正在回顯的互動式提示的行,例如
sftp> ls *.txt
,但可以使用 過濾掉這些行grep -v
:echo "ls *.txt" | sftp -q user@host.example.com:/path | grep -v '^sftp>'
順便說一句,使用批處理文件並將其與
-b
參數一起傳遞給sftp
而不是echo
將管道傳入其中可能是更好的做法。如果您真正想要做的只是獲取文件列表,那麼這實際上可能
ssh
比使用更好sftp
(畢竟,這是**安全的文件傳輸程序****):ssh user@host.example.com ls -1 /path