I had to replace all filenames in a folder, recursively, with space with underscore.
This is one of the one-off operations I need to do while working on my website, and I don’t really want to, for example, search, install (buy) an app just to do that.
Here’s the Fish Shell script I used:
#!/opt/homebrew/bin/fish # define the directory to search set search_dir ./ # recursively find all files in the search directory find $search_dir -type f | while read -l file # replace spaces with underscores in the file name set new_name (echo $file | tr ' ' '_') # rename the file mv $file $new_name end
I put this in the folder containing all the files and folders I wanted to rename, named
Then I set it as executable using
chmod +x replace_spaces.fish and finally ran it using