Quick answer for pros
Run sudo rm -rf /Volumes/DriveName/path/to/file in Terminal. If that fails, use diskutil repairVolume /Volumes/DriveName or fsck_exfat -d /dev/disk2s1 for ExFAT drives.
Why this happens
What's actually happening here is that macOS’s Finder is hitting a wall it can’t explain. The error “The operation can’t be completed” is a catch-all for three underlying causes:
- File permissions or ACLs — the external drive might be formatted as ExFAT or FAT32, which doesn’t support macOS permission flags, but macOS still tries to apply them. This creates confusion.
- Locked files or hidden flags — the file might have the
uchg(user immutable) flag set. Finder won’t tell you this, but it blocks deletion. - Corrupted directory structure — especially on older drives, a sudden disconnect or improper ejection can leave the volume’s file table in a state where macOS can’t resolve the file’s location.
The reason a simple restart sometimes works is that macOS’s fsck runs automatically at boot on internal drives, but not on externals. So you have to force it.
Fix steps (in order of likelihood)
- Try the Terminal brute-force
Open Terminal and type:
Replacesudo rm -rf /Volumes/DriveName/path/to/fileDriveNameand the path with your drive and the stuck file. If the file name has spaces, wrap it in quotes:sudo rm -rf "/Volumes/My Drive/stupid file.pdf". This bypasses Finder’s permission checks entirely. - Check for the immutable flag
If step 1 fails with “Operation not permitted,” the file might be locked:
Look forls -lO /Volumes/DriveName/path/to/fileuchgin the output. If you see it, run:
Then retry step 1.sudo chflags nouchg /Volumes/DriveName/path/to/file - Repair the volume
Open Disk Utility, select the external drive, click First Aid → Run. Or use Terminal:
If it reports issues, run:diskutil verifyVolume /Volumes/DriveName
For ExFAT drives, skip Disk Utility — it’s flaky with ExFAT. Usediskutil repairVolume /Volumes/DriveNamefsck_exfatinstead:
You’ll need to find the correct disk identifier first withsudo fsck_exfat -d /dev/disk2s1diskutil list. Pick the one that matches your external drive size. - Force unmount and remount
If the volume repair says “volume is in use,” unmount it first:
Then repair it, and remount by plugging it out and back in.sudo umount /Volumes/DriveName - Eject from terminal, then delete
Sometimes the file’s directory entry is cached. Eject cleanly:
Then reconnect and retry step 1.sudo diskutil eject /Volumes/DriveName
If all else fails
Copy everything off, reformat, copy back. It’s nuclear but works every time. Use Disk Utility to erase the drive as ExFAT (if you need cross-platform) or APFS (if macOS only). Before you do, check if the file is actually needed — sometimes it’s a phantom entry you can just ignore.
Use a third-party tool like DiskWarrior or TechTool Pro for deeply corrupted directory structures. They cost money but they’ve saved my ass more than once on drives that even fsck couldn’t fix.
Prevention
Always eject external drives properly — don’t just yank them. I know, it’s obvious, but the one time you’re in a hurry is when the file table gets scrambled. Also, run diskutil verifyVolume monthly on drives you use heavily. If you’re on macOS Ventura or later, enable “Erase External Media” in Finder’s sidebar to get a clean eject shortcut.
And for god’s sake, don’t copy files directly from a Windows machine to ExFAT without a proper disconnect — Windows often leaves files in a “dirty” state that macOS chokes on.