我无法将文件名从unix中的SFTP目录复制到文本目录中(发送“ls-lt*.csv”gt;${反馈文件列表}\r";)

我无法将文件名从unix中的SFTP目录复制到文本目录中(发送“ls-lt*.csv”gt;${反馈文件列表}\r";),unix,expect,Unix,Expect,我想用发送“ls-lt*.csv>${FEEDBACK\u FILE\u LIST}\r”将所有.csv文件移动到$FEEDBACK\u FILE\u LIST中。它不会抛出任何错误,也不会将任何文件移动到本地目录$FEEDBACK\u FILE\u LIST中 请帮帮我 编辑: 我想将文件列表放入本地目录.PFB expect<<EOD spawn /usr/bin/sftp -o Port=22 ${USER}@${HOST_NAME} expect "password:"

我想用
发送“ls-lt*.csv>${FEEDBACK\u FILE\u LIST}\r”将所有
.csv
文件移动到
$FEEDBACK\u FILE\u LIST
中。它不会抛出任何错误,也不会将任何文件移动到本地目录$FEEDBACK\u FILE\u LIST中

请帮帮我

编辑: 我想将文件列表放入本地目录.PFB

expect<<EOD 
spawn /usr/bin/sftp -o Port=22 ${USER}@${HOST_NAME}
expect "password:" 
send "${PASSWD}\r" 
expect "sftp>" 
send "ls -la *.csv > ${FEEDBACK_FILE_LIST}\r" 
expect "sftp>"
send "bye\r" 
EOD

expect你几乎没有选择,最好的是下一个。使用

ssh host@remote "ls -lt /directory/of/log/*.csv" > $FEEDBACK_FILE_LIST
假设
$FEEDBACK\u FILE\u LIST
是您机器上的一个文件。如果您想为此设置cron作业,并且完全确定要执行此操作!!!!你可以这样做

ssh host:password@remote "ls -lt /directory/of/log/*.csv" > $FEEDBACK_FILE_LIST
这样,您就不会收到输入密码的提示,这对cron作业非常有用,但请注意,打开脚本文件的任何人都可以看到密码。把它写在别的地方也没用,因为它很容易被追踪到

如果不需要将其作为cron作业,可以在
中执行类似操作。bashrc

function getlogs() {
    ssh username:$1@hostname "ls -lt /directory/of/log/*.csv" > $FEEDBACK_FILE_LIST
}
然后你就可以在终点站做了

getlogs password

这就是我要做的。

在远程目录(SFTP)中,我们不应该删除,实际上我们要做的是将.csv文件从SFTP目录复制到本地目录。因此,我们将文件复制到varaible($FEEDBACK\u FILE\u LIST/)中。我可以查看日志中的文件列表,但不能移动到本地目录。ls-la*.csv>/***/***/***/log/9006_feedback_files_list.txt-->feedback_FILE_list谢谢,但是我们不能在远程目录(SFTP>)中使用scp命令。我的意思是我想把文件列表放到本地目录中。PFB..当然,你只需要一个文件列表,不复制文件?是的,我想将文件列在本地目录中,但这不会发生。你能帮我吗?没问题。只要让我知道这是一个一次性的工作或应定期完成。所以我可以提供更好的答案