applescript find duplicate images and delete small images

3 min read 26-08-2025
applescript find duplicate images and delete small images


Table of Contents

applescript find duplicate images and delete small images

This guide provides a comprehensive AppleScript solution for identifying and removing duplicate images, prioritizing the deletion of smaller file sizes. While a perfect solution requires image comparison beyond simple file size and name, this script offers a robust starting point for managing image duplicates on your Mac. Remember to always back up your data before running any script that modifies files.

Understanding the Script's Logic

The script works in several stages:

  1. File Gathering: It first gathers all image files within a specified folder (you'll need to change this in the script).
  2. Duplicate Identification: It identifies potential duplicates based on filename. Note that this is a rudimentary method; identical filenames might not always represent identical images.
  3. Size Comparison: For each set of potential duplicates, it compares file sizes.
  4. Deletion: It deletes the smaller images, leaving the larger ones intact. It provides feedback in the form of messages indicating which files were deleted.

The AppleScript Code

on run
	-- Set the folder path containing your images.  **CHANGE THIS TO YOUR FOLDER**
	set targetFolder to POSIX path of (choose folder)

	tell application "Finder"
		set imageFiles to every file of entire contents of targetFolder whose name extension is in {"jpg", "jpeg", "png", "gif", "tiff"} -- Add other extensions as needed
	end tell

	set duplicateGroups to {}
	set fileNames to {}
	repeat with aFile in imageFiles
		set fileName to name of aFile
		if fileName is in fileNames then
			set the end of duplicateGroups to {aFile, item (count fileNames) of fileNames}
		else
			set the end of fileNames to fileName
		end if
	end repeat


	repeat with aGroup in duplicateGroups
		set file1 to item 1 of aGroup
		set file2 to item 2 of aGroup
		
		tell application "Finder"
			set size1 to size of file1
			set size2 to size of file2
			if size1 < size2 then
				delete file1
				display dialog "Deleted: " & POSIX path of file1 buttons {"OK"} default button 1
			else
				delete file2
				display dialog "Deleted: " & POSIX path of file2 buttons {"OK"} default button 1
			end if
		end tell
	end repeat

	display dialog "Duplicate image cleanup complete." buttons {"OK"} default button 1

end run

How to Use the Script

  1. Copy the code: Copy the entire AppleScript code above.
  2. Open Script Editor: Open the Script Editor application (located in /Applications/Utilities/).
  3. Paste the code: Paste the copied code into the Script Editor window.
  4. Modify the targetFolder variable: Crucially, change the line set targetFolder to POSIX path of (choose folder) to point to the specific folder containing your images. You can either hardcode the path or use choose folder to select it interactively.
  5. Run the script: Click the "Run" button in the Script Editor.
  6. Review the results: The script will display dialog boxes showing which files were deleted. Manually check the folder to ensure the script worked as expected.

Important Considerations and FAQs

H2: What if I have duplicate images with different filenames?

This script only detects duplicates based on filenames. True duplicate detection requires comparing image content, which is computationally intensive and beyond the scope of this simple script. Consider using dedicated image management software for more advanced duplicate detection.

H2: What file types does this script support?

Currently, the script supports JPG, JPEG, PNG, GIF, and TIFF images. You can add or remove extensions in the line whose name extension is in {"jpg", "jpeg", "png", "gif", "tiff"}.

H2: Can I recover deleted images?

Yes, if you have not emptied the Trash, you can recover deleted images from there.

H2: Is this script safe?

While this script is designed to be safe, always back up your data before running any script that modifies files. Test it on a small sample of images before running it on a large collection. Improper use could lead to data loss.

H2: My script is giving errors. What should I do?

Check the targetFolder variable to ensure it's correctly pointing to your image folder. Ensure you have the correct permissions to read and write to that folder. If you're still encountering errors, provide the error message and I can help troubleshoot.

This enhanced guide offers a more robust and user-friendly approach to managing duplicate images using AppleScript, addressing common user concerns and providing a clear path for execution and troubleshooting. Remember to always prioritize data backup before running any script that modifies files.