33 lines
1.1 KiB
Bash
Executable File
33 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
# ── Config ────────────────────────────────────────────────────────────────────
|
|
INPUT_DIR="./paperless-download"
|
|
OUTPUT_DIR="./paperless-flat"
|
|
# ─────────────────────────────────────────────────────────────────────────────
|
|
|
|
mkdir -p "$OUTPUT_DIR"
|
|
|
|
MOVED=0
|
|
SKIPPED=0
|
|
|
|
while IFS= read -r -d '' FILE; do
|
|
BASENAME=$(basename "$FILE")
|
|
|
|
# Strip leading date prefix: "YYYY-MM-DD " → ""
|
|
NEWNAME=$(echo "$BASENAME" | sed -E 's/^[0-9]{4}-[0-9]{2}-[0-9]{2} //')
|
|
|
|
DEST="$OUTPUT_DIR/$NEWNAME"
|
|
|
|
if [ -e "$DEST" ]; then
|
|
echo "Skipping (already exists): $NEWNAME" >&2
|
|
SKIPPED=$((SKIPPED + 1))
|
|
continue
|
|
fi
|
|
|
|
cp "$FILE" "$DEST"
|
|
MOVED=$((MOVED + 1))
|
|
done < <(find "$INPUT_DIR" -mindepth 2 -name "*.pdf" -print0)
|
|
|
|
echo "Done. Copied $MOVED files to $OUTPUT_DIR/ ($SKIPPED skipped as duplicates)."
|