按日期获取最后修改的文件的FTP操作

5
我正在通过ftp连接远程服务器,发送ls -t命令,但它输出的文件是按名称排序的。如何通过ftp获取最近修改的文件?注意:我正在从Linux机器连接Windows ftp服务器。
4个回答

5

ls -t会将最后修改的文件放在最上面

您可以通过查看完整的时间戳来确认这一点

ls -lt

@soField,运行得很完美。你使用的是什么FTP客户端?普通的ftp吗? - Anders
1
我们正在使用基于Windows的FTP服务器,这会有影响吗?因为当我们运行ls或ls -t命令时,输出总是相同的,始终按名称排序返回文件,请参见注释部分,我已更新问题,谢谢。 - soField
@soField:我已经尝试从命令窗口连接到我的服务器,FTP可以正常工作。你能否也试一下? - JoseK
我也尝试了从Windows命令行运行,但输出结果还是一样的,无效。 - soField
这取决于服务器的行为,不具备可移植性,也不可靠。 - bstpierre
@JoseK 没有标准答案,这取决于服务器。如果 OP 只需要使其在他的服务器上工作,他可以尝试 ls /odls -od(这些是 DOS dir 标志),或者查阅服务器文档。 - bstpierre

2
在大多数基于Unix/Linux的FTP服务器中,ls命令与实际的ls命令链接在一起。这就是为什么所有其他答案都建议使用ls -t并可能添加更多参数的原因。
然而,由于您正在使用Windows机器作为服务器,很难确定该命令将如何工作。我不认为Windows带有默认的FTP服务器服务。我知道许多站点在其Windows机器上使用第三方FTP服务。这将取决于您的Windows机器使用的软件以及它的设置:
尝试类似这样的东西:
ftp> dir /O:D

或者

ftp> ls /O:D

这些使用 Windows 参数来执行内置的 dir 命令。


2
ftp -n server <<EOF|awk 'END{for(i=9;i<=NF;i++)printf "%s ",$i}'
user username password
ls -ltr
EOF

2

试试这个,对我有效。

ls -t1 | head -1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接