実際にはファイル名を一覧表示できますが、そこでも望ましくない内容がたくさん出てきます。
> 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
同様のフィルタを使用しないでください。
ベストアンサー1
オプションを使用してはいと-q
言うsftp
キューueet、したがって、興味のないほとんどの出力を抑制します。
echo "ls *.txt" | sftp -q [email protected]:/path
たとえば、エコーしているインタラクティブプロンプト行は引き続き表示されますが、次を使用してその行sftp> ls *.txt
をフィルタリングできますgrep -v
。
echo "ls *.txt" | sftp -q [email protected]:/path | grep -v '^sftp>'
最善の方法は、バッチファイルを使用してパイピングするのではなく、-b
パラメータsftp
と一緒に渡すことです。echo
もし本物あなたがしたいことはリストssh
ファイルを使用するよりも実際に優れている可能性がありますsftp
(最終的にはいこれSエクールFエリーティー移動する 血プログラム):
ssh [email protected] ls -1 /path