Use a opção -q
para informar sftp
a ser q uiet, suprimindo assim a maior parte da saída com a qual você não se importa:
echo "ls *.txt" | sftp -q [email protected]:/path
Você ainda verá as linhas do prompt interativo ao qual você está ecoando, e. g. sftp> ls *.txt
, mas esses podem ser filtrados com um grep -v
:
echo "ls *.txt" | sftp -q [email protected]:/path | grep -v '^sftp>'
Como um aparte, provavelmente é uma prática melhor usar um arquivo em lote e passá-lo com o parâmetro -b
para sftp
em vez de echo
em um pipeline.
Se tudo que você realmente deseja fazer é obter uma lista de arquivos, isso pode ser mais bem servido com ssh
do que com sftp
(que, após tudo, é o s ecure f ile t ransfer p rograma):
ssh [email protected] ls -1 /path