This is just me celebrating a small win. I’ve been slowly learning bash scripting, and just now I was able to quickly write a simple bash script to automate a file moving task without referring to my notes or the web!
It’s not a super complicated script, I’m just happy I’m starting to internalize the knowledge I’ve been building.
I’ve been organizing my media files after ripping our DVD collection. I had all the files for The Smurfs cartoon (love the Smurfs) in the main Smurfs show folder. I wanted to put them all into their respective season folders (Season.XX). Here’s the script:
#! /bin/bash
for number in {01..09}; do
find . -type f -name "The.Smurfs.S$number*" -exec mv {} Season.$number/ \;
done
I could have done it as a one liner, but I like to keep things like this for future reference.
I have studiously avoided learning any bash scripting for the 17 years I’ve used Linux, so all I can say is good job! Actually just today I found a command that I needed to get a certain appimage to run without crashing, and I remembered enough that I was able to make it into a script (I struggle with whether it’s !# or #!). Having just done it today, I can confirm you don’t need to include ‘/bin/bash’, just FYI. I believe that is assumed.
It makes it usable without typing bash. Same would apply for a python script. For example you can make a python script named with no extension and add #!/usr/bin/python to the top of the file. Bash shell sees this and knows to execute the script using that python path.Then you just include the directory in your $PATH and chmod +x the script. Then you can type $python_script instead of $python python_script.py