我的知识记录

如何修改文件修改日期(图文)

修改文件修改日期有多种方法,根据不同操作系统和需求选择合适的方式:

1. Linux/macOS 系统

使用 touch 命令(最常用)

基本语法


 
bash
touch -m -t YYYYMMDDHHMM[.SS] filename

实际示例


 
bash
# 修改单个文件的修改日期为 2023年12月25日14:30 touch -m -t 202312251430 filename.txt # 修改多个文件 touch -m -t 202312251430 *.txt *.pdf # 修改为当前日期时间 touch -m filename.txt # 使用不同的日期格式 touch -m -d "2023-12-25 14:30:00" filename.txt touch -m -d "Dec 25 2023" filename.txt

批量修改


 
bash
# 修改当前目录所有文件 touch -m -t 202312251430 * # 递归修改子目录所有文件 find . -type f -exec touch -m -t 202312251430 {} \; # 按文件类型批量修改 find . -name "*.jpg" -exec touch -m -t 202312251430 {} \;

2. Windows 系统

使用 PowerShell(推荐)


 
powershell
# 修改单个文件的最后写入时间 (Get-Item "filename.txt").LastWriteTime = "2023-12-25 14:30:00" # 修改创建时间 (Get-Item "filename.txt").CreationTime = "2023-12-25 14:30:00" # 批量修改多个文件 Get-ChildItem "*.txt" | ForEach-Object { $_.LastWriteTime = "2023-12-25 14:30:00" } # 递归修改子目录文件 Get-ChildItem -Recurse | ForEach-Object { $_.LastWriteTime = "2023-12-25 14:30:00" }

使用命令提示符


 
cmd
# 更新文件时间戳为当前时间 copy /b filename.txt +,, # 批量更新 for %f in (*.txt) do copy /b "%f" +,,

3. 编程方式修改

Python 脚本


 
python
import os import time from datetime import datetime def modify_file_date(filepath, new_date): """ 修改文件的修改日期 :param filepath: 文件路径 :param new_date: 新日期字符串,格式:"2023-12-25 14:30:00" """ # 转换日期为时间戳 dt = datetime.strptime(new_date, "%Y-%m-%d %H:%M:%S") new_timestamp = time.mktime(dt.timetuple()) # 获取当前访问时间 current_atime = os.path.getatime(filepath) # 修改修改时间,保持访问时间不变 os.utime(filepath, (current_atime, new_timestamp)) print(f"已修改 {filepath} 的修改日期为 {new_date}") # 使用示例 modify_file_date("filename.txt", "2023-12-25 14:30:00") # 批量修改 import glob for file in glob.glob("*.txt"): modify_file_date(file, "2023-12-25 14:30:00")

Node.js 脚本


 
javascript
const fs = require('fs'); function modifyFileDate(filepath, newDate) { // 转换日期为时间戳(毫秒) const newTimestamp = new Date(newDate).getTime() / 1000; // 获取当前访问时间 const stats = fs.statSync(filepath); const currentAtime = stats.atime.getTime() / 1000; // 修改修改时间 fs.utimesSync(filepath, currentAtime, newTimestamp); console.log(`已修改 ${filepath} 的修改日期为 ${newDate}`); } // 使用示例 modifyFileDate('filename.txt', '2023-12-25 14:30:00');

4. 高级技巧

按条件筛选修改


 
bash
# 只修改大于1MB的文件 find . -type f -size +1M -exec touch -m -t 202312251430 {} \; # 只修改一周内修改过的文件 find . -type f -mtime -7 -exec touch -m -t 202312251430 {} \; # 按文件扩展名筛选 find . \( -name "*.doc" -o -name "*.pdf" \) -exec touch -m -t 202312251430 {} \;

保持时间间隔


 
bash
#!/bin/bash # 保持文件间原有的时间间隔关系 REFERENCE_TIME="202312251430" BASE_FILE="reference.txt" # 计算基准文件与现在的时间差 TIME_DIFF=$(($(stat -c %Y "$BASE_FILE") - $(date +%s))) # 为所有文件应用相同的时间偏移 find . -type f -exec sh -c ' for file; do current_time=$(stat -c %Y "$file") new_time=$((current_time - TIME_DIFF)) touch -m -d "@$new_time" "$file" done ' _ {} +

5. 验证修改结果

Linux/macOS


 
bash
# 查看文件详细信息 stat filename.txt # 只查看修改时间 stat -c %y filename.txt # 查看多个文件的修改时间 ls -l filename.txt

Windows PowerShell


 
powershell
# 查看文件详细信息 Get-Item "filename.txt" | Select-Object Name, LastWriteTime, CreationTime

注意事项

  1. 权限要求: 需要对目标文件具有写权限
  2. 备份重要文件: 批量操作前建议先备份
  3. 系统审计: 修改系统关键文件时间戳可能影响审计追踪
  4. 格式一致性: 确保日期时间格式正确统一
选择最适合您环境和需求的方法来修改文件的修改日期。
 

如何修改文件修改日期(图文)

标签:

更新时间:2025-12-15 13:19:19

上一篇:怎么改变文件的修改日期和时间(图文)

下一篇:上传日期修改怎么弄的啊(图文)