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

编写Linux脚本:复制含昨日日期的文件并去除日期命名

解决方案

1. 生成昨天的日期字符串

首先用date命令生成文件名里用到的YYYYMMDD格式的昨天日期:

yesterday=$(date -d "yesterday" +%Y%m%d)

这条命令会把昨天的日期(比如20230419)存入变量yesterday。

2. 批量处理目标文件

用循环遍历指定目录下符合条件的文件,复制并重命名,强制覆盖已有文件:

# 替换为你实际的目标目录(比如./folder/folder2)
target_dir="./folder/folder2"

yesterday=$(date -d "yesterday" +%Y%m%d)

# 遍历目录中所有名称包含昨天日期的jpg文件
for file in "${target_dir}"/*${yesterday}.jpg; do
    # 跳过不存在的文件(避免通配符匹配不到时出错)
    [ -f "$file" ] || continue
    
    # 提取不带日期的文件名:移除末尾的日期部分
    new_name="${file%${yesterday}.jpg}.jpg"
    
    # -f 参数强制覆盖已存在的目标文件
    cp -f "$file" "$new_name"
    echo "处理完成:$file → $new_name"
done

3. 脚本使用方法

  1. 将上述代码保存为copy_yesterday_photos.sh
  2. 给脚本添加执行权限:
    chmod +x copy_yesterday_photos.sh
    
  3. 运行脚本:
    ./copy_yesterday_photos.sh
    

注意事项

  • 如果文件名的日期格式不是YYYYMMDD,需要调整date命令的格式参数,比如日期是MMDDYYYY的话,改成date -d "yesterday" +%m%d%Y
  • 若需要遍历整个服务器目录,把target_dir换成/,但这样会遍历所有文件,速度较慢,建议尽量指定具体目录
  • 测试时可以先把cp -f替换成echo cp -f,先验证命令是否正确,避免误操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 14:25:08