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 = ; ;
Options
fileSize: min: '1kB' //Minimum fileSize max: '20kB' //Maximum fileSize extensions: 'js' 'txt' 'csv' //Array of extensions to search for, fileNameLike: '' //Wildcard filename search fileContent: contains: 'Something' //File must contain this string (/Something/gi) caseSensitive: false //True for making `contains` case sensitive filesOnly: false //True for ignoring directories caseSensitive: false //True for case sensitive fileName search excludedPaths: 'node_modules' //Array of excluded paths timeout: false //Timeout in ms before aborting the search created: start: 'DateString' //Start date for file/dir creation date -- Date.parse end: 'DateString' //End date for file/dir creation date -- Date.parse modified: start: 'DateString' //Start date for file/dir modified date -- Date.parse end: 'DateString' //End date for file/dir modified date -- Date.parse accessed: start: 'DateString' //Start date for file/dir accessed date -- Date.parse end: 'DateString' //End date for file/dir accessed date -- Date.parse
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--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 fileP Path of the file relative to the root pathN File nameS File Size prettifieds File SizeE ExtensionA Accessed TimestampM Modified TimestampC Created Timestamp
Example: --output "N.E S"
-> testfile.txt 43kB