---
title: "Bash script: delete unused images"
slug: /image-deletion-bash-script/
date: 2023-04-16
tags: ["log", "bash"]
---

When I'm working on my technical notes I often insert images, diagrams,
screenshots etc. Often, I end up creating multiple images that I end up not
using. I don't like commiting dead bytes to the repo so I wrote a short script
that reads each file in the image directory and looks to see if it is referenced
in any Markdown files. If it isn't, the image is deleted.

```bash
find /home/thomas/repos/eolas/_img -type f | while read filename; do
    rg "${filename##*/}" ../ --type markdown >/dev/null 2>&1
    if [ "$?" -eq 1 ]; then
        echo "Deleted unused image: ${filename##*/}"
        rm $filename
    fi
done
```

Example:

```sh
./clean_image_directory.sh
Deleted unused image: multiplication_03.gif
Deleted unused image: Pasted_image_20220319174839.png
Deleted unused image: multiplication_04.gif
Deleted unused image: multiplication_02.gif
```
