Sftp

如何通過 SFTP 列出文件和僅列出文件?

  • February 3, 2020

我實際上可以列出文件名,但很多不需要的東西也來自那裡。

> 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

引用自:https://unix.stackexchange.com/questions/285472