ShAkE (shake) — маленькая консольная утилита для принудительной дефрагментации файлов на разделах и/или в отдельных каталогах.
Необходимость дефрагментирования файлов в GNU/Linux системах имеет своих сторонников и противников, споры по этому поводу ведутся до сих пор с разной степенью интенсивности. В большинстве случаев файловые системы (такие как Ext4, Ext3 и Ext2) практически не подвержены фрагментации, так как новые файлы ими равномерно "распределяются" по всему разделу. При увеличении объёма файла используется всё доступное свободное пространство между файлами и фрагментации в большинстве случаев не происходит.
Если же фрагментирование файлов всё же происходит, то файловая система в фоновом режиме старается перенести файлы в другое место, где фрагменты объединяются, поэтому специально запускать процесс дефрагментации не требуется. Если диск заполнен на 80% и более то фрагментация всё же возможна, но избавится от неё можно простым копированием файлов с фрагментиованного раздела на другой и обратно. Файловая система самостоятельно и наиболее оптимально разместит файлы, избавившись от фрагментации раздела.
shake работает в пользовательском пространстве, не требуя остановки системы или внесения изменений в ядро. По сути утилита просто переписывает ферментированный файл на свободное пространство, используя при копировании/перемещении эвристические алгоритмы, что позволяет выполнять задачу более эффективно чем это делают другие приложения (e4defrag, defragfs, defrag и пр). Утилита для работы требует прав администратора (root), при копировании/перемещении файлов сохраняются все его атрибуты (без изменений).
Лицензия: GNU General Public License version 3.0 (GPLv3)