Stop using the drive containing the data.
Windows and MacOS X use a "even wear system" where they try writing to blocks with the oldest date it became free. This ends up writing to as much of the entire partition before overwriting deleted files starting from the oldest available contiguous set of clusters/blocks large enough to contain the entire file.
Linux file systems are not like that, although it's been a while since I've read in this area, but if I remember right, most of the Linux file systems use something like "super blocks" which can be compared to chopping up the partition into smaller chunks where you'll have data written in blocks containing a specified amount of sectors at 512B each, (512B user storage, the actual sector size can vary depending on hard drive manufacturer's layout structure, could be 600B + - ). And files deleted in a super block layout get overwritten a lot faster than a file deleted from a vast partition storage scheme using even wear strategy.
Your best bet with a Linux file system is the sleuthkit for producing inode information, deleted file's inodes etc.