How Do I Make a Bash Script To Find Unused Images in a Project?
bash, grep, image, shell
Solution
With drysdam's help, I created this Bash script, which I call orphancheck.sh and call with "./orphancheck.sh myfolder".
#!/bin/bash
MYPATH=$1
find "$MYPATH" -name *.jpg -exec basename {} \; > /tmp/patterns
find "$MYPATH" -name *.png -exec basename {} \; >> /tmp/patterns
find "$MYPATH" -name *.gif -exec basename {} \; >> /tmp/patterns
for p in $(cat /tmp/patterns); do
grep -R $p "$MYPATH" > /dev/null || echo $p;
done
Problem
How do I make a Bash shell script that can identify all the .jpg, .gif, and .png files, and then identify which of these files are not linked via url(), href, or src in any text file in a folder? Here's what I started, but I end up getting the inverse of what I want. I don't want to know referenced images, but unreferenced (aka "orphaned") images: ``` # Change MYPATH to the path where you have the project find MYPATH -name *.jpg -exec basename {} \; > /tmp/patterns find MYPATH -name *.png -exec basename {} \; >> /tmp/patterns find MYPATH -name *.gif -exec basename {} \; >> /tmp/patterns # Print a list of lines that reference these files # The cat command simply removes coloring grep -Rf /tmp/patterns MYPATH | cat # great -- but how do I print the lines of /tmp/patterns *NOT* listed in any given # *.php, *.css, or *.html? ```