Tips and tricks

Bash Script that replaces all the filenames in a dir

It prompts for:

  1. Folder path
  2. Text to find
  3. Text to replace with

Then it renames all files in that folder by replacing the first occurrence of the given string in each filename.

#!/bin/bash

# Ask for the folder path
read -p "Enter the folder path: " folder

# Check if folder exists
if [ ! -d "$folder" ]; then
  echo "Error: Folder does not exist."
  exit 1
fi

# Ask for the string to find
read -p "Enter the text to find in filenames: " find_text

# Ask for the string to replace with
read -p "Enter the text to replace with: " replace_text

# Use find to get all files recursively
find "$folder" -type f | while read -r file; do
  filename=$(basename "$file")
  dirname=$(dirname "$file")

  # Replace first occurrence only
  new_filename="${filename/$find_text/$replace_text}"

  # Rename if changed
  if [ "$filename" != "$new_filename" ]; then
    mv "$file" "$dirname/$new_filename"
    echo "Renamed: $filename -> $new_filename"
  fi
done

echo "Done."
{"type":"main_options","images_arr":"'#ffffff'","enable_ajax":"off","soundcloud_apikey":"","bg_isparallax":"off","bg_slideshow_time":"0","bg_transition":"slidedown","site_url":"https:\/\/digitalzoomstudio.net","theme_url":"https:\/\/digitalzoomstudio.net\/wp-content\/themes\/qucreative\/","blur_ammount":"26","width_column":"50","width_section_bg":"","width_gap":"30","border_width":"0","border_color":"#ffffff","translate_cancel_comment":"Cancel reply","translate_leave_a_comment":"Leave a comment","translate_leave_a_comment_to":"Leave a comment to","is_customize_preview":"off","width_blur_margin":"30","gallery_w_thumbs_autoplay_videos":"off","content_enviroment_opacity":"30","menu_enviroment_opacity":"70","base_url":"https:\/\/digitalzoomstudio.net"}
{"type":"darkfull"}