You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用curl通过FTP获取目录文件并按修改日期倒序排列的问题

问题:从FTP拉取目录列表并按修改日期倒序保存

我通过以下命令从FTP服务器拉取目录列表到本地文件:

curl --verbose --ftp-ssl --user 'username:password' ftp://abc.com:001//this/is/stackoverflow/ > /home/dir1/dir2/dir3

执行more dir3后,理想输出如下:

drwxrwxrwx 1 owner group 0    Jan 1 2021 00:00 filename1
drwxrwxrwx 1 owner group 0    Jan 1 2022 04:30 filename2
drwxrwxrwx 1 owner group 0    Jan 1 2021 06:30 filename3
-rwxrwxrwx 1 owner group 1122 Jan 1 2022 08:30 filename4
-rwxrwxrwx 1 owner group 2233 Jan 1 2022 10:30 filename5
-rwxrwxrwx 1 owner group 3344 Jan 1 2023 11:30 filename6

我需要让保存到dir3的文件列表按修改日期倒序排列,但之前尝试的命令都无效(曾尝试用-k6M参数针对月份列排序):

  • curl --verbose --ftp-ssl--user 'username:password' ftp://abc.com:001//this/is/stackoverflow/ > /home/dir1/dir2/dir3 | sort -n -t- -k6M | tail -1
  • curl --verbose --ftp-ssl--user 'username:password' ftp://abc.com:001//this/is/stackoverflow/ > /home/dir1/dir2/dir3 | sort -n -t- -k6M
  • curl --verbose --ftp-ssl--user 'username:password' ftp://abc.com:001//this/is/stackoverflow/ > /home/dir1/dir2/dir3 | sort -k6M | tail -1

需求是在执行curl命令时,直接把按修改日期倒序排列的列表保存到本地文件中。


解决方案

你的核心问题是重定向顺序错误:先把curl输出写入文件,再用管道传数据给sort,此时sort接收不到任何内容。正确逻辑是先让curl输出经过sort处理,再写入文件。另外,sort的参数需要针对日期的多列做组合排序,才能保证顺序准确。

最终可用命令如下:

curl --ftp-ssl --user 'username:password' ftp://abc.com:001//this/is/stackoverflow/ | sort -k7,7nr -k6,6M -k5,5nr -k8,8r > /home/dir1/dir2/dir3

参数说明:

  • -k7,7nr:按第7列(年份)数字倒序排序
  • -k6,6M:按第6列(月份缩写)识别排序
  • -k5,5nr:按第5列(日期)数字倒序排序
  • -k8,8r:按第8列(时间)倒序排序
  • 管道|先传递curl的目录列表给sort处理,再通过>写入目标文件

如果需要保留curl的调试输出(--verbose参数),需把调试信息重定向到/dev/null避免干扰列表内容:

curl --verbose --ftp-ssl --user 'username:password' ftp://abc.com:001//this/is/stackoverflow/ 2>/dev/null | sort -k7,7nr -k6,6M -k5,5nr -k8,8r > /home/dir1/dir2/dir3

执行后,dir3内的内容会按修改日期从新到旧排列,比如示例中的filename6(2023年)会排在最前,filename1(2021年)排在最后。


内容的提问来源于stack exchange,提问作者Kumar A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 10:25:20