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

如何使用scp命令从Linux服务器下载特定日期的Zip文件?

实现Linux服务器特定日期Zip文件的本地下载

完全可以实现,以下是几种常用的方法:

方法一:find 筛选 + scp 下载

1. 先在服务器上确认目标文件

通过修改时间筛选特定日期的Zip文件(以2024-05-20为例):

find /path/to/zip/files -type f -name "*.zip" -newermt "2024-05-20" ! -newermt "2024-05-21"

参数说明:

  • /path/to/zip/files:替换为你的Zip文件存储路径
  • -type f:只筛选文件(排除目录)
  • -name "*.zip":仅匹配Zip后缀的文件
  • -newermt "2024-05-20":筛选修改时间晚于2024-05-20 00:00的文件
  • ! -newermt "2024-05-21":排除修改时间晚于2024-05-21 00:00的文件,最终得到2024-05-20当天的文件

2. 批量下载到本地

方式A:直接通过管道传递文件列表到scp

在本地终端执行:

ssh user@server_ip "find /path/to/zip/files -type f -name '*.zip' -newermt '2024-05-20' ! -newermt '2024-05-21'" | xargs -I {} scp user@server_ip:{} /local/save/path

替换user为服务器用户名,server_ip为服务器IP,/local/save/path为本地存储路径。

方式B:先打包再下载(大文件批量下载更高效)

在本地终端执行:

ssh user@server_ip "cd /path/to/zip/files && find . -type f -name '*.zip' -newermt '2024-05-20' ! -newermt '2024-05-21' | xargs tar czf -" | tar xzf - -C /local/save/path

该命令会在服务器上把目标文件打包成压缩包,通过SSH传输到本地后自动解压。

方法二:rsync 按时间范围同步

rsync支持按时间戳筛选文件,适合批量同步场景:

rsync -av --include="*.zip" --exclude="*" --min-age=$(date -d '2024-05-20' +%s) --max-age=$(date -d '2024-05-21' +%s) user@server_ip:/path/to/zip/files/ /local/save/path/

参数说明:

  • -av:归档模式(保留文件属性)+ 详细输出
  • --include="*.zip":仅包含Zip文件
  • --exclude="*":排除其他所有文件
  • --min-age/--max-age:用Unix时间戳指定文件修改时间的范围

简化技巧:文件名含日期前缀

如果你的Zip文件名本身包含日期(比如20240520_data.zip),可以直接用通配符匹配,无需复杂的时间筛选:

scp user@server_ip:/path/to/zip/files/*20240520*.zip /local/save/path

注意事项

  • 确保服务器与本地机器的时间同步,避免时间筛选出现偏差
  • 如果服务器禁用密码登录,提前配置SSH密钥对,避免重复输入密码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 05:10:17