如何使用 SFTP ls 命令显示子目录

How to show subdirectories using SFTP ls command

我正在尝试获取文件夹中的子目录列表

echo "ls -1 /path/to/folder/*/" | sftp -i /path/to/key user@host | grep -v 'sftp>'

如果有多个子目录,我得到子目录列表:

/path/to/folder/subdirectory1/
/path/to/folder/subdirectory2/

如果只有一个子目录,我什么也得不到。

感谢您的建议。

注意:不允许使用 SSH

If there is only one subdirectory I get nothing.

如果只有一个子目录是空的,你应该什么也得不到,因为ls如果给定一个目录参数列出其内容。使用普通的 ls 我们可以简单地通过选项 -d 解决这个问题,但不幸的是 sftpls 没有那个选项。我想到的唯一方法是从长列表中过滤所需的目录:

echo "ls -l /path/to/folder" | sftp -i /path/to/key user@host | awk '/^d/{print "/path/to/folder/"$NF}'