我需要从sftp获取最新文件到本地计算机,我有一个概念,那就是在获取列出的最新文件之前,先在sftp中列出目标目录的最新文件。
有任何命令可以使用linux shell脚本来完成此操作吗?
file=$(sftp username@servername 'ls -ltr /server/path | tail -n 1')
我已经使用此命令列出了最新文件,但它不起作用。我也不知道获取列出文件的命令,知道吗?
您有ls options
错,请尝试:
file=$(ssh username@servername 'ls -1tr /server/path' | tail -n 1)
您正在使用-l
(小写L
的long
上市)的选项,而不是使用-1
(一把手)选项(list one file per line
)这将导致你的ls
命令包括文件权限,文件所有权,等等......这作为输入使用时,scp
将导致命令失败。
另外,如果您要提供的文件名scp
,则不需要-r
(递归)选项。以下是scp
命令所需的全部内容。("$file"
如果文件名中有空格,请不要忘记使用双引号来防止单词拆分)
scp username@servername:/path/path/"$file" /my/home/directory
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句