0

0

MAC如何批量修改文件的创建日期?(终端进阶用法)

冰火之心

冰火之心

发布时间:2026-03-15 17:50:21

|

155人浏览过

|

来源于php中文网

原创

macOS批量修改文件创建日期需用终端工具:一、SetFile命令统一设时间;二、exiftool写元数据并同步时间戳;三、Shell脚本解析文件名提取时间;四、Python调用os.setxattr设birthtime(macOS 12+ APFS)。

mac如何批量修改文件的创建日期?(终端进阶用法)

如果您需要在 macOS 系统中批量调整多个文件的创建日期,但 Finder 不提供直接操作入口,则需借助终端命令行工具实现。以下是几种可靠且可复现的操作方法:

一、使用 touch 命令配合 stat 和 xargs 修改创建时间

macOS 的 touch 命令默认仅修改访问时间和修改时间,但结合 SetFile 工具(来自 Xcode 命令行工具)可精确设定创建日期。此方法适用于已知目标时间且需统一赋值的场景。

1、打开终端,执行 xcode-select --install 确保已安装命令行工具。

2、确认 SetFile 可用:输入 which SetFile,返回路径即表示就绪。

3、进入目标文件所在目录,例如:cd /Users/username/Documents/testfiles

4、运行以下命令将当前目录下所有 .txt 文件创建时间设为 2023 年 1 月 1 日 12:00:00:for f in *.txt; do SetFile -d "01/01/2023 12:00:00" "$f"; done

二、利用 exiftool 批量写入创建日期(支持元数据感知文件)

exiftool 是跨平台元数据处理工具,对图像、PDF、音频等含标准元数据的文件可直接写入 CreateDate 字段,并同步更新文件系统创建时间(需配合 -api QuickTimeUTC=1 等参数及 macOS 特定行为)。

1、通过 Homebrew 安装 exiftool:brew install exiftool

2、检查某图片的原始创建时间:exiftool -CreateDate IMG_1234.jpg

3、将指定目录内全部 JPEG 文件创建时间设为 2022-06-15 09:30:00:exiftool -CreateDate="2022:06:15 09:30:00" -api QuickTimeUTC=1 /path/to/images/*.jpg

4、强制刷新文件系统时间戳(部分版本需手动触发):touch -c -t 202206150930.00 /path/to/images/*.jpg

小羊标书
小羊标书

一键生成百页标书,让投标更简单高效

下载

三、编写 shell 脚本实现按文件名或修改时间推算创建时间

当原始创建时间丢失但存在命名规律(如 “IMG_20230405_142230.jpg”)或与修改时间高度接近时,可通过脚本提取时间信息并反向注入 SetFile。

1、新建脚本文件:nano set_creation_from_name.sh

2、粘贴以下内容(以 YYYYMMDD_HHMMSS 格式命名的 JPG 文件为例):#!/bin/bash; for f in *.jpg; do if [[ $f =~ ([0-9]{4})([0-9]{2})([0-9]{2})_([0-9]{2})([0-9]{2})([0-9]{2})\.jpg ]]; then y=${BASH_REMATCH[1]}; m=${BASH_REMATCH[2]}; d=${BASH_REMATCH[3]}; H=${BASH_REMATCH[4]}; M=${BASH_REMATCH[5]}; S=${BASH_REMATCH[6]}; SetFile -d "$m/$d/$y $H:$M:$S" "$f"; fi; done

3、赋予执行权限:chmod +x set_creation_from_name.sh

4、运行脚本:./set_creation_from_name.sh

四、使用 Python 脚本调用 os.setxattr 修改 birthtime(需 macOS 12+ 及 APFS 卷)

从 macOS Monterey(12.0)起,APFS 文件系统支持通过 extended attribute 写入 birthtime,Python 的 os.setxattr 可直接操作,但需 root 权限且仅对新创建或未被硬链接的文件生效。

1、确认文件系统类型:df -T .,输出应含 apfs。

2、创建脚本:nano set_birthtime.py

3、写入代码:import os, sys; path = sys.argv[1]; ts = int(sys.argv[2]); os.setxattr(path, 'com.apple.birthtime', ts.to_bytes(8, "little"))

4、执行示例(设置 test.txt 创建时间为 1672531200 秒,即 2023-01-01 00:00:00 UTC):sudo python3 set_birthtime.py test.txt 1672531200

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

847

2023.08.22

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1051

2023.08.02

int占多少字节
int占多少字节

int占4个字节,意味着一个int变量可以存储范围在-2,147,483,648到2,147,483,647之间的整数值,在某些情况下也可能是2个字节或8个字节,int是一种常用的数据类型,用于表示整数,需要根据具体情况选择合适的数据类型,以确保程序的正确性和性能。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

617

2024.08.29

c++怎么把double转成int
c++怎么把double转成int

本专题整合了 c++ double相关教程,阅读专题下面的文章了解更多详细内容。

335

2025.08.29

C++中int的含义
C++中int的含义

本专题整合了C++中int相关内容,阅读专题下面的文章了解更多详细内容。

235

2025.08.29

macOS怎么切换用户账户
macOS怎么切换用户账户

在 macOS 系统中,可通过多种方式切换用户账户。如点击苹果图标选择 “系统偏好设置”,打开 “用户与群组” 进行切换;或启用快速用户切换功能,通过菜单栏或控制中心的账户名称切换;还能使用快捷键 “Control+Command+Q” 锁定屏幕后切换。

359

2025.05.09

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

68

2026.03.13

Python异步编程与Asyncio高并发应用实践
Python异步编程与Asyncio高并发应用实践

本专题围绕 Python 异步编程模型展开,深入讲解 Asyncio 框架的核心原理与应用实践。内容包括事件循环机制、协程任务调度、异步 IO 处理以及并发任务管理策略。通过构建高并发网络请求与异步数据处理案例,帮助开发者掌握 Python 在高并发场景中的高效开发方法,并提升系统资源利用率与整体运行性能。

108

2026.03.12

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

324

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 10.7万人学习

好课诞生记
好课诞生记

共20课时 | 6.4万人学习

swift开发文档
swift开发文档

共33课时 | 26.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号