FilesFinder
Simple module to search for files under various conditions, supporting globs via the glob module. Supports filtering by file content, filesize, extensions and created/modified/accessed dates.
Usage
var FilesFinder = require('filesfinder');
FilesFinder(rootPath, options)
.then(function(files) {
})
.catch(function(error) {
});
Options
{
fileSize: {
min: '1kB',
max: '20kB'
},
extensions: ['js', 'txt', 'csv'],
fileNameLike: '',
fileContent: {
contains: 'Something',
caseSensitive: false
},
filesOnly: false,
caseSensitive: false,
excludedPaths: ['node_modules'],
timeout: false,
created: {
start: 'DateString',
end: 'DateString'
},
modified: {
start: 'DateString',
end: 'DateString'
},
accessed: {
start: 'DateString',
end: 'DateString'
}
}
CLI
A very basic CLI is included when installed globally (npm install -g filesfinder
). It's based on commander
Option Comment Default
--root [path] Root path to base the search on. require('process').cwd()
--extensions [extensions] Space-separated list of extensions to search for. false
--filenamelike [filenamelike] Wildcard filname search false
--contains [wildcard] Content to search for in the files. false
--containscase [wildcard] Content to search for in the files. (Case sensitive) false
--filesonly Only files, no directories. false
--exclude [excludedpaths] Space-separated list of excluded paths false
--timeout [ms] Timeout in milliseconds before aborting. false
--casesensitive Case Sensitive search of filenames false
--fsmin [min] Minimum file size in bytes/string variant. false
--fsmax [max] Maximum file size in bytes/string variant. false
--cstart [datestring] Created on start date false
--cend [datestring] Created on end date false
--mstart [datestring] Modified on start date false
--mend [datestring] Modified on end date false
--astart [datestring] Accessed on start date false
--aend [datestring] Accessed on end date false
--output [format] Output format 'P'
Use any of the following to generate an output format:
F Full path of the file
P Path of the file relative to the root path
N File name
S File Size prettified
s File Size
E Extension
A Accessed Timestamp
M Modified Timestamp
C Created Timestamp
Example: --output "N.E S"
-> testfile.txt 43kB