Remove Duplicate Files on Linux
Problem
I was cleaning files on the system. Wanted to get rid of files that were duplicated as I had two computers that had gotten out of sync with each other.
Solution
The Script
#!/bin/bash
###############################################################################
# Author: Kenny Robinson, @almostengr
# Description: Remove duplicate files from a particular directory. Need to be
# in the diretory that you wish to clean BEFORE running this script.
###############################################################################
echo "Checking disk space"
# check disk space before cleanup
du -sh "$(pwd)"
echo "Done checking disk space"
echo "Removing duplicates"
# perform cleanup
fdupes -r -d -N "$(pwd)"
echo "Done removing duplicates"
echo "Removing empty directories"
# remove empty directories
EMPTYDIR=1
while [ ${EMPTYDIR} -gt 0 ]; do
# remove the empty directories
find . -type d -empty -exec rm -rf {} \;
# check if new empty directories exist
EMPTYDIR=$(find . -type d -empty | wc -l)
echo "${EMPTYDIR} empty directories found"
done
echo "Done removing empty directories"
echo "Checking disk space"
# check disk space after cleanup
du -sh "$(pwd)"
echo "Done checking disk space"
Updated: 2023-01-17 | Posted: 2021-07-21
Author: Kenny Robinson