Nikon RAW 文件转换Jpg第三版

     上一篇 使用 Syncthing API 监听 NFS 目录同步并自动转换 Nikon RAW 文件 中的处理过程还是有些问题,于是不再追求试试转换,改为每天转换一次,缺点是当天就要把文件同步到对应日期的目录

#!/bin/bash


# 自动获取昨天日期

if date -d "yesterday" +%Y-%m-%d >/dev/null 2>&1; then

    # Linux

    YESTERDAY_FOLDER=$(date -d "yesterday" +%Y/%Y-%m-%d)

else

    # macOS

    YESTERDAY_FOLDER=$(date -v -1d "+%Y/%Y-%m-%d")

fi


# 如果传入参数就用传入的,否则使用昨天日期

DATE_FOLDER="${1:-$YESTERDAY_FOLDER}"


# 源目录和目标目录

SOURCE_DIR="/mnt/nfs_share/NikonRaw"

TARGET_BASE_DIR="/mnt/nfs_share/NikonJpg"


SOURCE_PATH="${SOURCE_DIR}/${DATE_FOLDER}"

TARGET_PATH="${TARGET_BASE_DIR}/${DATE_FOLDER}"


# 检查源目录是否存在

if [ ! -d "$SOURCE_PATH" ]; then

    echo "源目录不存在:$SOURCE_PATH"

    exit 1

fi


# 确保目标目录存在

mkdir -p "$TARGET_PATH"


# 转换函数

convert_to_jpg() {

    local input_file=$1


    # 获取相对路径 (去掉 SOURCE_DIR 的前缀)

    local relative_path="${input_file#$SOURCE_DIR/}"


    # 生成目标目录(保持和 SOURCE_DIR 一致的结构)

    local target_dir="${TARGET_BASE_DIR}/$(dirname "$relative_path")"

    mkdir -p "$target_dir"


    # 目标 JPG 文件路径

    local output_file="${target_dir}/$(basename "${input_file%.NEF}.jpg")"


    # 避免重复转换

    if [ -f "$output_file" ]; then

        echo "文件已转换,跳过:$output_file"

        return

    fi


    # 使用 dcraw 提取 JPEG 预览图

    if dcraw -e -c "$input_file" > "$output_file"; then

        echo "转换成功:$input_file -> $output_file"


        # 拷贝 EXIF 信息

        exiftool -tagsFromFile "$input_file" -DateTimeOriginal -CreateDate -TimeZone -overwrite_original "$output_file"

        if [ $? -eq 0 ]; then

            echo "EXIF 数据更新成功:$output_file"

        else

            echo "EXIF 数据更新失败:$output_file"

        fi

    else

        echo "转换失败:$input_file"

    fi

}


# 处理 NEF 文件,排除 sync-conflict

echo "处理目录:$SOURCE_PATH..."

find "$SOURCE_PATH" -type f -name "*.NEF" ! -name "*sync-conflict*" | while read -r file; do

    convert_to_jpg "$file"

done


echo "所有文件处理完成。"

 然后添加每天凌晨的执行任务

0 0 * * * /bin/bash /home/test/process_new_folder.sh >> /var/log/process_new_folder.log 2>&1

评论

此博客中的热门博文

飞牛私有云OS相册、MT Photos、immich简单对比

飞牛私有云OS使用AList挂载天翼云盘

飞牛私有云OS相册、MT Photos、immich简单对比(二)