Okay, I only learned about Recuva because I deleted some seriously important files from a USB drive. But, I'm glad I know about Recuva.
Recuva is Windows freeware, but I understand it can work on Ubuntu through WINE. With Recuva, you can "undelete" files from your external memory widgets like an mp3 player or USB or other memory card. According to their website, you can also permanently delete files using Recuva.
I used Recuva to recover files that were accidentally deleted on a USB drive. Downloading and installing Recuva software is easy. (You can also download a portable version so you can have it with you wherever you go.) I had no need to use Recuva's documentation in order to get to work on undeleting my files. You simply select the drive you would like Recuva to scan and recover. After the scan is performed, Recuva displays a list of the files found. There were a lot. This thing recovered probably everything ever put on the USB drive (in my case over 1000 files). Some files no longer had the correct file names, but had numbers assigned to them instead. The actual organization that the files existed under was gone. For instance, if you have your files in folders, Recuva isn't going to recover the same organization scheme... no folders, just the files. That's really all that matters anyway. From this list I selected the files I wanted recovered. Then, I choose to recover them. At this point Recuva prompted me to select a location to save the recovered files. From there, Recuva recovered the files! Now the real work comes to go through it all, organize them and find out what is needed, and what isn't. Unfortunately, no computer program can do this... yet.