8000 GitHub - makoc/EFUtool: EFU file update tool for Everything indexer
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
/ EFUtool Public
forked from zybexXL/EFUtool

EFU file update tool for Everything indexer

License

Notifications You must be signed in to change notification settings

makoc/EFUtool

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

EFU file update tool for Everything indexer

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 100.0%
0