批量修改文件夹内所有文件的MD5值

要批量修改文件夹内所有文件的MD5值(包括jpg、png等各种格式),可以使用以下方法:

方法一:追加空内容并重命名

!/bin/bash

遍历当前目录下的所有文件

for file in *; do

# 跳过目录本身
if [ -f "$file" ]; then
    # 向文件追加空内容
    echo >> "$file"
    # 重命名文件
    mv "$file" "modified_$file"
fi

done

方法二:更安全的方法(保留扩展名)

!/bin/bash

遍历当前目录下的所有文件

for file in *; do

# 跳过目录本身
if [ -f "$file" ]; then
    # 获取文件名和扩展名
    filename="${file%.*}"
    extension="${file##*.}"
    
    # 向文件追加空内容
    echo >> "$file"
    
    # 重命名文件,保留原扩展名
    if [ "$extension" != "$file" ]; then
        mv "$file" "${filename}_modified.${extension}"
    else
        mv "$file" "${file}_modified"
    fi
fi

done

使用方法

  1. 将上述脚本保存为modify_md5.sh
  2. 给脚本执行权限:chmod +x modify_md5.sh
  3. 进入目标文件夹
  4. 运行脚本:./modify_md5.sh

注意事项

  1. 此方法会修改所有文件内容(追加一个换行符),从而改变其MD5值
  2. 对于某些特殊文件(如二进制文件),追加内容可能会导致文件损坏
  3. 建议先在小范围测试后再批量操作
  4. 操作前最好备份重要文件

替代方案

如果需要更精确的控制,可以使用md5sum和touch命令组合:
for file in *; do

if [ -f "$file" ]; then
    touch "$file"  # 修改文件时间戳
    # 或者添加一个很小的修改
    echo "# MD5 modified" >> "$file"
fi

done

这些方法都能有效改变文件的MD5值,同时保持文件基本可用的状态。