批量修改文件夹内所有文件的MD5值
批量修改文件夹内所有文件的MD5值
要批量修改文件夹内所有文件的MD5值(包括jpg、png等各种格式),可以使用以下方法:
方法一:追加空内容并重命名
!/bin/bash
遍历当前目录下的所有文件
for file in *; do
# 跳过目录本身
if [ -f "$file" ]; then
# 向文件追加空内容
echo >> "$file"
# 重命名文件
mv "$file" "modified_$file"
fidone
方法二:更安全的方法(保留扩展名)
!/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
fidone
使用方法
- 将上述脚本保存为modify_md5.sh
- 给脚本执行权限:chmod +x modify_md5.sh
- 进入目标文件夹
- 运行脚本:./modify_md5.sh
注意事项
- 此方法会修改所有文件内容(追加一个换行符),从而改变其MD5值
- 对于某些特殊文件(如二进制文件),追加内容可能会导致文件损坏
- 建议先在小范围测试后再批量操作
- 操作前最好备份重要文件
替代方案
如果需要更精确的控制,可以使用md5sum和touch命令组合:
for file in *; do
if [ -f "$file" ]; then
touch "$file" # 修改文件时间戳
# 或者添加一个很小的修改
echo "# MD5 modified" >> "$file"
fidone
这些方法都能有效改变文件的MD5值,同时保持文件基本可用的状态。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
小菜鸡
评论已关闭