---
name: "shake"
section: "8"
platform: "linux"
package: "shake"
version: "1.0-5"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/shake/8"
---

# shake(8)

Rewrite fragmented files, maybe improving performance.

## NAME

Shake - Rewrite fragmented files, maybe improving performance.

## SYNOPSIS

**shake** \[*OPTION*\]... \[*FILE\|DIRECTORY*\]...

## DESCRIPTION

Rewrite fragmented or misplaced files, maybe improving performance. Reads file list from standard input if there is no files in the arguments. You have to mount your partition with the user\_xattr option.

- **-c**, **--max-crumbc**

  max number of crumbs

- **-C**, **--max-fragc**

  max number of fragments

- **-d**, **--max-deviance**

  max distance between file start and it's ideal position

- **-h**, **--help**

  you're looking at me !

- **-L**, **--no-locks**

  don't put a lock on written files

- **-m**, **--many-fs**

  shake subdirectories that are on different filesystems

- **-n**, **--new**

  age of "new" files, which will be shak()ed

- **-o**, **--old**

  age of "old" files, which won't be shak()ed

- **-p**, **--pretend**

  don't alter files

- **-r**, **--crumbratio**

  ratio of the file under which a fragment is a crumb

- **-s**, **--smallsize**

  the size under which a file is considered small

- **-S**, **--bigsize**

  the size under which a file is considered big

**-t**, **--small-tolerance** multiply crumbratio and divide maxfnumber of small files

- **-T**, **--big-tolerance**

  multiply crumbratio and divide maxfnumber of big files

- **-v**, **--verbose**

  increase the verbosity level

- **-V**, **--version**

  show version number and copyright

- **-X**, **--no-xattr**

  disable usage of xattr

## USAGE

If there is no *FILES* shake read from stdin.

Please refer to *http://vleu.net/shake/* for detailed instructions.

## EXAMPLES

- See fragmention of a file :

  **shake** --pretend --verbose --verbose *FILE*

- Shake all file in a dir, recursively :

  **shake** --old=0 *DIR*

- Shake all mp3 in subdirectory, puting together those close in lexical order :

  find -iname '\*.mp3' \| sort \| **shake**

## REPORTING BUGS

Report bugs to \<brice.arnould+shake@gmail.com\> or at https://github.com/unbrice/shake/issues

## COPYRIGHT

Copyright (C) 2006-2009 Brice Arnould. Permission is granted to copy, distribute and/or modify documentation under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the file FDL.txt .

Copyright © 2006-2011 Brice Arnould. Shake comes with ABSOLUTELY NO WARRANTY. You may redistribute copies of Shake under the terms of the GNU General Public License version or greater. For more information about these matters, see the file named GPL.txt.
