Shake
What it is
Shake is a free userspace defragmenter for GNU/Linux that can reorganize fragmented files while the system remains in use. It uses heuristics based on file size, last-shake date or change time, access-time patterns, and fragment counts when selecting files. By default, files larger than 95 MB are skipped, and files newer than two months are not processed. Files whose last-shake time or change time is older than eight times 31 days are eligible; options can alter these limits and tolerances. The --pretend and --verbose options report fragmentation without changing files. A sorted list of MP3 files can be piped into Shake to defragment them and place them close together in lexical order. Installation guidance covers Ubuntu/Debian, Gentoo, Arch Linux, and source builds using CMake and libattr development files.
For and against
For
- Runs while the system is in use
- Preview mode avoids changing files
- Heuristics guide file selection
- Supports several Linux installation paths
- Can order MP3 files lexically
Against
- Linux-only software
- Usage requires root access
- Files over 95 MB skipped by default
- user_xattr improves incremental efficiency
The verdict
Shake provides configurable, userspace defragmentation for GNU/Linux, including a preview mode and ordered MP3 placement. Running it requires root access, and default size and age rules limit which files are processed.
Who it suits
Shake suits GNU/Linux users who want userspace defragmentation and can work with root-level command-line operation. It is also useful when previewing fragmentation before making changes.
On the record
- Age behavior
- By default, Shake processes files whose last shake time or ctime is older than eight times 31 days and skips files newer than two months; these values can be changed with options.vleu.net · read 4 Oct 2026
- Extended attributes
- The maker recommends mounting the partition with user_xattr; Shake can run without it but is less efficient because it uses extended attributes to store information for incremental use.vleu.net · read 4 Oct 2026
- File ordering
- You can pipe a sorted file list into Shake to defragment files and place files close together in lexical order on disk.vleu.net · read 5 Oct 2026
- File selection
- Shake uses file size, last-shake date or ctime, access-time patterns, and fragment counts in deciding whether files are fragmented enough to process.vleu.net · read 5 Oct 2026
- File size behavior
- By default, files larger than 95 MB are skipped, and the page says this behavior can be changed with `--big-tolerance`.vleu.net · read 5 Oct 2026
- Filesystem requirement
- The maker recommends mounting the partition with user_xattr; Shake can run without it but is less efficient for incremental use.vleu.net · read 5 Oct 2026
- How it works
- It defragments files by rewriting fragmented files.vleu.net · read 5 Oct 2026
- Installation
- The maker lists Ubuntu/Debian, Gentoo, and Arch Linux installation options and instructions for building from source with CMake and libattr development files.vleu.net · read 4 Oct 2026
- Install options
- The page lists Ubuntu/Debian, Gentoo, and Arch Linux installation options and instructions for building from source.vleu.net · read 5 Oct 2026
- Maker
- The project page names Brice Arnould as the author.vleu.net · read 4 Oct 2026
- Maker location
- The maker's about page says he lives in Evilard, a village close to Berne, Switzerland.vleu.net · read 4 Oct 2026
- Preview
- The `--pretend` and `--verbose` options can show fragmentation without running a defragmentation pass.vleu.net · read 5 Oct 2026
- Preview mode
- Shake can report fragmentation without changing files using the --pretend and --verbose options.vleu.net · read 4 Oct 2026
- Purpose
- Shake is a userspace defragmenter for GNU/Linux that can run while the system is in use.vleu.net · read 5 Oct 2026
- Root access
- The usage instructions say to run Shake as root.vleu.net · read 5 Oct 2026
- Source code
- The maker links to a public GitHub repository whose file list includes COPYING and GPL.txt.github.com · read 5 Oct 2026
- Support contact
- The project page lists [email protected] as the author's email address.vleu.net · read 5 Oct 2026
- Usage
- The maker says to run Shake as root on a directory and recommends running it on the whole partition when it is not in use for better results.vleu.net · read 4 Oct 2026