#!/bin/bash# Create a temporary file for storing file checksums
tempfile=$(mktemp)
# Generate MD5 checksums for all files in the current directory and its sub-directories
find . -type f -execmd5sum'{}' \; | sort > $tempfile# Detect and delete duplicates
awk 'BEGIN {
lasthash = "";
lastfile = "";
}
{
if ($1 == lasthash) {
print "Deleting duplicate file: " $2;
system("rm -f \""$2"\"");
} else {
lasthash = $1;
lastfile = $2;
}
}'$tempfile# Clean uprm -f $tempfile
This script can be run with Termux from the root of your internal storage. Usually /sdcard or /storage/emulated/0. Do not confuse this with running from root if you are rooted.
Before using a script that interacts with your files you should backup anything that is important just in case.
Furthermore, if you comment out:
system("rm -f \""$2"\"");
By adding a # in front of it like this:
# system("rm -f \""$2"\"");
You can run the script and see what files the script would delete without actually deleting them. I would recommend doing this as I have not tested this script.
Here’s a script from GPT4:
#!/bin/bash # Create a temporary file for storing file checksums tempfile=$(mktemp) # Generate MD5 checksums for all files in the current directory and its sub-directories find . -type f -exec md5sum '{}' \; | sort > $tempfile # Detect and delete duplicates awk 'BEGIN { lasthash = ""; lastfile = ""; } { if ($1 == lasthash) { print "Deleting duplicate file: " $2; system("rm -f \""$2"\""); } else { lasthash = $1; lastfile = $2; } }' $tempfile # Clean up rm -f $tempfile
This script can be run with Termux from the root of your internal storage. Usually /sdcard or /storage/emulated/0. Do not confuse this with running from root if you are rooted.
Before using a script that interacts with your files you should backup anything that is important just in case.
Furthermore, if you comment out:
system("rm -f \""$2"\"");
By adding a # in front of it like this:
# system("rm -f \""$2"\"");
You can run the script and see what files the script would delete without actually deleting them. I would recommend doing this as I have not tested this script.
Haha thats so cool, I’ll try that option as well :)