removing -_
This commit is contained in:
@ -25,7 +25,7 @@
|
|||||||
# Extension filter:
|
# Extension filter:
|
||||||
# - Default: mp4
|
# - Default: mp4
|
||||||
# - "*" : all files
|
# - "*" : all files
|
||||||
# - "jpg" : only .jpg (with or without leading dot accepted, e.g., "jpg" or ".jpg")
|
# - "jpg" : only .jpg (with or without leading dot accepted, e.g. "jpg" or ".jpg")
|
||||||
#
|
#
|
||||||
# Logging:
|
# Logging:
|
||||||
# RENAME: "old_name.ext" => "new_name.ext"
|
# RENAME: "old_name.ext" => "new_name.ext"
|
||||||
@ -78,7 +78,8 @@ rename_file() {
|
|||||||
# Guard: identical path, nothing to do
|
# Guard: identical path, nothing to do
|
||||||
if [[ "$src" == "$dst" ]]; then
|
if [[ "$src" == "$dst" ]]; then
|
||||||
if (( DRY_RUN )); then
|
if (( DRY_RUN )); then
|
||||||
log "NOCHANGE (dry-run): \"$(basename "$src")\" (nothing to do)"
|
# CHANGE: add `--` so basename doesn't treat dash-prefixed names as options
|
||||||
|
log "NOCHANGE (dry-run): \"$(basename -- "$src")\" (nothing to do)"
|
||||||
fi
|
fi
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
@ -99,10 +100,12 @@ rename_file() {
|
|||||||
done
|
done
|
||||||
|
|
||||||
if (( DRY_RUN )); then
|
if (( DRY_RUN )); then
|
||||||
log "RENAME: \"$(basename "$src")\" => \"$(basename "$candidate")\""
|
# CHANGE: add `--` for safe logging
|
||||||
|
log "RENAME: \"$(basename -- "$src")\" => \"$(basename -- "$candidate")\""
|
||||||
else
|
else
|
||||||
mv -v -- "$src" "$candidate" >/dev/null
|
mv -v -- "$src" "$candidate" >/dev/null
|
||||||
log "RENAME: \"$(basename "$src")\" => \"$(basename "$candidate")\""
|
# CHANGE: add `--` for safe logging
|
||||||
|
log "RENAME: \"$(basename -- "$src")\" => \"$(basename -- "$candidate")\""
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -182,7 +185,8 @@ strip_reserved() {
|
|||||||
local base ext token lw
|
local base ext token lw
|
||||||
local -a parts new_parts=()
|
local -a parts new_parts=()
|
||||||
|
|
||||||
base="$(basename "$name")"
|
# CHANGE: pass `--` to basename for dash-prefixed names
|
||||||
|
base="$(basename -- "$name")"
|
||||||
ext=""
|
ext=""
|
||||||
if [[ "$base" == *.* ]]; then
|
if [[ "$base" == *.* ]]; then
|
||||||
ext=".${base##*.}"
|
ext=".${base##*.}"
|
||||||
@ -243,15 +247,21 @@ fi
|
|||||||
for path in "$DIR"/$pattern; do
|
for path in "$DIR"/$pattern; do
|
||||||
[[ -f "$path" ]] || continue
|
[[ -f "$path" ]] || continue
|
||||||
|
|
||||||
orig_basename="$(basename "$path")"
|
orig_basename="$(basename -- "$path")"
|
||||||
|
|
||||||
# 1) remove reserved tokens from basename
|
# NEW RULE (minimal): remove ALL leading dashes before processing
|
||||||
stripped="$(strip_reserved "$orig_basename")"
|
clean_basename="$orig_basename"
|
||||||
|
while [[ "$clean_basename" == -* ]]; do
|
||||||
|
clean_basename="${clean_basename#-}"
|
||||||
|
done
|
||||||
|
|
||||||
|
# 1) remove reserved tokens from basename (on the cleaned name)
|
||||||
|
stripped="$(strip_reserved "$clean_basename")"
|
||||||
|
|
||||||
# 2 & 3) normalize (spaces -> "_", collapse "_", trim)
|
# 2 & 3) normalize (spaces -> "_", collapse "_", trim)
|
||||||
new_name="$(normalize_name "$stripped")"
|
new_name="$(normalize_name "$stripped")"
|
||||||
|
|
||||||
# NEW: If nothing changed, do not attempt to rename at all
|
# If nothing changed, do not attempt to rename at all
|
||||||
if [[ "$new_name" == "$orig_basename" ]]; then
|
if [[ "$new_name" == "$orig_basename" ]]; then
|
||||||
if (( DRY_RUN )); then
|
if (( DRY_RUN )); then
|
||||||
log "NOCHANGE (dry-run): \"${orig_basename}\" (nothing to do)"
|
log "NOCHANGE (dry-run): \"${orig_basename}\" (nothing to do)"
|
||||||
|
|||||||
Reference in New Issue
Block a user