okay.... this is what ...gpt wrote up and from my testing it works. it prompts me for the prefix text, adds the date, and the sequence.
#!/usr/bin/env bash WORK_DIR="$HOME/Pictures/Rename" cd "$WORK_DIR" || { echo "Could not change to directory: $WORK_DIR"; exit 1; } TODAY=$(date +%Y-%m-%d) # Prompt the user for a prefix read -rp "Enter prefix for filenames (default: Photos): " PREFIX PREFIX=${PREFIX:-Photos} # use default if input is empty shopt -s nullglob # avoid literal patterns if no files # Find the highest existing counter for today and prefix MAX_COUNTER=0 for EXISTING in "${PREFIX}_${TODAY} - "*.*; do [ -e "$EXISTING" ] || continue BASENAME=$(basename "$EXISTING") # Extract the number after the last ' - ' COUNTER_PART="${BASENAME##* - }" COUNTER_PART="${COUNTER_PART%.*}" # remove extension # Only consider it if it's a number if [[ $COUNTER_PART =~ ^[0-9]+$ ]]; then (( COUNTER_PART > MAX_COUNTER )) && MAX_COUNTER=$COUNTER_PART fi done COUNTER=$((MAX_COUNTER + 1)) # Rename files for FILE in *.jpg *.JPG *.jpeg *.JPEG *.png *.PNG; do [ -e "$FILE" ] || continue EXT="${FILE##*.}" EXT=$(echo "$EXT" | tr '[:upper:]' '[:lower:]') NEW_NAME="${PREFIX}_${TODAY} - ${COUNTER}.${EXT}" mv "$FILE" "$NEW_NAME" echo "Renamed '$FILE' -> '$NEW_NAME'" COUNTER=$((COUNTER + 1)) done On Sat, Aug 16, 2025 at 11:49 AM Michael <bmi...@gmail.com> wrote: > okay... so what do you think.... will this work? chatgot says it will . > #!/usr/bin/env bash > > # Label of the drive > LABEL="photos" > > # Get the mountpoint for the volume with this label > MOUNT_POINT=$(findmnt -n -o TARGET -S LABEL="$LABEL") > > if [ -z "$MOUNT_POINT" ]; then > echo "Could not find a mounted volume with label: $LABEL" > exit 1 > fi > > echo "Found $LABEL mounted at: $MOUNT_POINT" > > # Use the mounted directory as working dir > WORKING_DIR="$MOUNT_POINT" > > cd "$WORKING_DIR" || { echo "Could not change to directory: $WORKING_DIR"; > exit 1; } > > # Define a loop counter > COUNTER=1 > > # Process all .txt files > while IFS= read -r FILE; do > # Store the directory of the file > DIR=$(dirname "$FILE" | tr '[:upper:]' '[:lower:]') > > # Strip the file extension and convert to lowercase > OLD_NAME=$(basename "$FILE" | sed 's/\.txt$//' | tr '[:upper:]' > '[:lower:]') > > # Build the new filename > NEW_NAME="${OLD_NAME}_${COUNTER}.txt" > > # Perform the renaming > if mv "${DIR}/${OLD_NAME}.txt" "${DIR}/${NEW_NAME}"; then > echo "Renamed '${DIR}/${OLD_NAME}.txt' -> '${DIR}/${NEW_NAME}'" > COUNTER=$((COUNTER + 1)) > else > echo "Failed to rename '$FILE'" > exit 1 > fi > done < <(find . -type f -name "*.txt" | sort -u) > > On Thu, Aug 7, 2025 at 2:33 PM Snyder, Alexander J < > alexan...@snyderfamily.co> wrote: > >> I have actually written this a few times for things I've needed in my >> homelab: >> >> This is the code (at a glance): >> [image: image.png] >> >> I have attached the source file for you to use. Please make note that it >> requires you to enter in your working directory (line 4) before it will >> work as intended. >> >> -- >> Thanks, >> Alex. >> >> >> >> >> On Thu, Aug 7, 2025 at 10:06 AM Michael via PLUG-discuss < >> plug-discuss@lists.phxlinux.org> wrote: >> >>> I was wondering, I need to rename a sequence of files from >>> '<order>,jpg' '<order+1>,jpg' (etc) >>> to >>> '<name> - <name>.jpg' '<name> - <name>*sequence* <+1>'.jpg etc >>> Would someone give me the proper bash command to do it? >>> --------------------------------------------------- >>> PLUG-discuss mailing list: PLUG-discuss@lists.phxlinux.org >>> To subscribe, unsubscribe, or to change your mail settings: >>> https://lists.phxlinux.org/mailman/listinfo/plug-discuss >>> >> > > -- > :-)~MIKE~(-: > -- :-)~MIKE~(-:
--------------------------------------------------- PLUG-discuss mailing list: PLUG-discuss@lists.phxlinux.org To subscribe, unsubscribe, or to change your mail settings: https://lists.phxlinux.org/mailman/listinfo/plug-discuss