Git Product home page Git Product logo

efutool's Introduction

EFUtool - Fast EFU indexer tool for Everything

EFUtool creates and updates EFU file indexes for loading into Everything search tool. The main addition of EFUtool is a fast "update mode" which rescans a given volume/share for changes only, instead of doing a full scan everytime. This update mode is about 7x faster than the native EFU indexer in Everything, when indexing network shares, and greatly reduces the I/O load on the storage units.


Benchmarks

Scanning a group of network shares with about 60 TB in 12 million files, 500 thousand folders:

Tool Operation Runtime Comment
Everything UI Folder Index Rescan 15:48:04
Everything CLI Create EFU index 03:40:06 4x faster than Folder Index
EFUtool Create EFU index 03:41:21 similar to Everything CLI
EFUtool Update EFU index 00:29:45 32x faster than Everything GUI, 7x faster than Everything CLI

EFUtool can also take include/exclude filters to fine tune what is included in the index. This further allows removal of files/folders that do not need to be indexed, making the indexes smaller and faster to lookup by Everything.

For volumes/shares with millions of files Everything's Folder Indexing is much slower than EFU indexing (see this thread). This issue may be resolved in a future version, bringing Folder Indexing speed to the same level as EFU creation. EFUtool update-mode is still much faster, and thus worthwhile.

UPDATE: David Carpenter from VoidTools found that the slower "Folder Index Rescan" is caused by Everything running it in a lower priority thread. To bring it in line with the "Create EFU Index" runtimes, just set folder_update_thread_mode_background=0 in Everything's config file.


Download (x64 binary): Latest Release

Requires .Net Framework 4.6.2 or above which supports Long File Paths (longer than 260 chars)


Command line syntax

EFUtool <[path\]index.EFU> [<root1> ... <rootN>] [options]


Options

    -i <mask> : include files/dir mask
    -x <mask> : exclude files/dir mask
    -f        : filter EFU file (no folder update/scan)
    -s        : print EFU file statistics/info
    -p        : suppress progress indication (for logging to file)
    -a        : save the used include/exclude args in EFU file
  • Multiple -i and -x switches can be used
  • mask pattern can include * and ? for regular filemask syntax
  • mask pattern can start with 'regex:' to use c# style regex matching
  • -i and -x can also be used in statististics and filter modes
  • -a option allows you to update the EFU using the saved args

Examples

Create a new EFU file with index of RootPath1 and RootPath2:

EFUtool index.efu RootPath1 RootPath2

Create a new EFU file with index of RootPath1, excluding 'Users' folder:

EFUtool index.efu RootPath1 RootPath2 -x \users\


Note that any include/exclude options provided during EFU creation should still be used when updating that EFU, to prevent the excluded items from being added back


Update an existing EFU file - rescan all included folders:

EFUtool index.efu

Update an existing EFU file - rescan only RootPath2, exclude EXE files:

EFUtool index.efu RootPath2 -x *.exe

Update an existing EFU file - add JPG files from RootPath3:

EFUtool index.efu RootPath3 -i *.jpg


Filter out RootPath2\ from EFU file:

EFUtool index.efu -f -x RootPath2\

Filter out all TMP files and TEMP folders from EFU file:

EFUtool index.efu -f -x *.tmp -x \TEMP\

Filter out all except JPG files of RootPath1 from EFU file:

EFUtool index.efu -f -i RootPath1\*.jpg


Print statistics for EFU file:

EFUtool index.efu -s

Print statistics for TMP files on EFU file:

EFUtool index.efu -s -i *.tmp

Print statistics for RootPath1 except TMP files:

EFUtool index.efu -s RootPath1 -x *.tmp

efutool's People

Contributors

zybexxl avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.