40 lines
1.2 KiB
Bash
40 lines
1.2 KiB
Bash
#!/bin/bash
|
|
# reorganize_images.sh - Move generated images from 2 levels down to 1 level down
|
|
# Usage: ./reorganize_images.sh [root_directory]
|
|
# Default root directory is current directory (.)
|
|
|
|
ROOT_DIR="${1:-.}"
|
|
|
|
echo "Reorganizing images in: $ROOT_DIR"
|
|
echo ""
|
|
|
|
# Find all *_generated.png files that are exactly 2 levels deep
|
|
# Pattern: root/level1/level2/*_generated.png -> root/level1/*_generated.png
|
|
|
|
find "$ROOT_DIR" -mindepth 3 -maxdepth 3 -name "generated.png" -type f | while read -r filepath; do
|
|
# Get the directory structure
|
|
# filepath = root/level1/level2/filename.png
|
|
# We want to move to: root/level1/filename.png
|
|
|
|
dir=$(dirname "$filepath")
|
|
filename=$(basename "$filepath")
|
|
|
|
# Get parent directory (1 level up from current location)
|
|
# dir = root/level1/level2
|
|
# parent = root/level1
|
|
parent=$(dirname "$dir")
|
|
|
|
target="$parent/$filename_generated.png"
|
|
|
|
# Check if target already exists
|
|
if [ -f "$target" ]; then
|
|
echo "SKIP: $filepath -> $target (already exists)"
|
|
else
|
|
echo "MOVE: $filepath -> $target"
|
|
# mv "$filepath" "$target"
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "Reorganization complete!"
|