首页  编辑  

同目录下若存在同名.bak文件并且文件内容一致则删除.bak文件

Tags: /计算机文档/Linux & Unix/   Date Created:
若目录下面,存在同名.bak文件则比较文件内容,若一致,则删除.bak文件:
#!/bin/bash
# 设置要扫描的目录
directory="."
# 遍历目录下的所有文件
for file in "$directory"/*; do
    # 检查文件是否以 .bak 结尾
    if [[ $file == *.bak ]]; then
        # 提取原始文件名(去掉 .bak 后缀)
        original_file="${file%.bak}"
        echo scan $original_file ...
        # 检查原始文件是否存在
        if [[ -e "$original_file" ]]; then
            # 比较文件内容
            if cmp -s "$original_file" "$file"then
                echo "Restore timestamp and remove $file because content matches with $original_file"
                # 使用stat获取.bak文件的时间戳
                timestamp=$(stat -c %Y "$file")
                # 更新.html文件的时间戳
                touch -d "@$timestamp" "$original_file"
                # 删除相同内容的备份文件
                rm  "$file"
            fi
        fi
    fi
done