The deletion is semi permenant. Look at it like this.
Disks are divided into inodes, with each inode having it's own table, that contains the physical disk address of where the file's data is stored.
When a file is deleted, it's entry is removed from the inode table. The data remains on disk, but that space in the inode is offered up to other files, because the slot is free.
It's kinda like you being a parking lot attendant. You have a list of all the cars, in all the spots in the lot. When someone leaves - you mark that spot as available. It will remain that way until you reassign it.
The only quick, easy, and cheap method that I know of, is to determine how much free space you have on your drive, and fill it with junk, and then delete it. For instance, if you have 500M free, you could do something like this:
Code:
dd if=/dev/urandom count=500 bs=1M of=/root/filename
What this will do, is create a 500M file, the contents of which are garbage. You can then delete it, but because your sensitive data was overwritten, all that is left on the disk, is the junk from the dd command.