Shake is a defragmenter that runs in userspace, without the need of patching the kernel and while the system is used (for now, on GNU/Linux only).
There is nothing magic in that : it just works by rewriting fragmented files. But it has some heuristics that could make it more efficient than other tools, including
defrag and, maybe,
As an example, it allows you to write:
find -iname '*.mp3' | sort | shake
to defrag all mp3 in a directory, puting together on the disk those close in lexical order.