file-date-organizer
v0.9.0
Published
Move files into a folder structure organized by date.
Downloads
25
Readme
File Date Organizer for NodeJS
The following document applies to the command-line usage of
file-date-organizer
. For usage directly in a Node application, please see the alternate README located here.
Purpose
Locate files by date and move them into a date-based folder structure (ie .../YYYY/MM/dd/hh
, etc.). Dates are extracted from the file name (ie Screen Shot 2020-05-28 at 10.16.59 AM.png
) or the file properties (created date, modified date, etc.).
More info on why I created this is on my blog: https://fredlackey.com
Installation
npm i -g file-date-organizer
Usage
Exatract then date from the name of the file ...
file-date-organizer \
--source "/Users/flackey/Documents/Screenshots" \
--target "/Volumes/MPHD01/Screenshots" \
--use-name \
--move \
--recursive \
--overwrite
... or, use a file property, such as the creation date ...
file-date-organizer \
--source "/Users/flackey/Documents/Screenshots" \
--target "/Volumes/MPHD01/Screenshots" \
--use-created \
--move \
--recursive \
--overwrite
When I process images from my camera, I use both the --use-name
switch as well as --use-created
. This ensures files without a date in the name still get moved properly.
file-date-organizer \
--source '/Users/flackey/pCloud Drive/Automatic Upload/' \
--target /Volumes/MPHD01/Multimedia/Photos/ \
--move \
--use-name \
--use-created \
--recursive \
--overwrite \
--console
The addition of the --console
switch adds an output which is helpful for long-running operations...
Important:
Combining--use-name
and any other--use*
option will cuase--use-name
to be leveraged first. If a valid name can be found within the name then the properties of the file will be ignored.
Parameters
| Name | Description | Type | Default |
|----------------|------------------------------------------|-----------------|---------|
| source
| Source Directory | string (path)
| |
| target
| Desination Directory | string (path)
| |
| recursive
| Locate files recursively | boolean
| true
|
| overwrite
| Overwrite existing target files | boolean
| false
|
| ignore
| Ignore existing target files | boolean
| false
|
| copy
| Copy the files | boolean
| false
|
| move
| Move the files | boolean
| false
|
| use-name
| Extract date from file name | boolean
| false
|
| use-created
| Use created date for target folder name | boolean
| false
|
| use-modified
| Use modified date for target folder name | boolean
| false
|
| add-type
| Target folder name includes file type | boolean
| false
|
| add-year
| Target folder name includes file year | boolean
| true
|
| add-month
| Target folder name includes file month | boolean
| true
|
| add-day
| Target folder name includes file day | boolean
| true
|
| add-hour
| Target folder name includes file hour | boolean
| false
|
| add-minute
| Target folder name includes file minute | boolean
| false
|
| add-second
| Target folder name includes file second | boolean
| false
|
| console
| Log activity to console | boolean
| false
|
| limit
| Number of files to process | number
| |
| allow-future
| Allow file names with date in future | boolean
| false
|
Contact
Please feel free to contact me directly with any questions, comments, or enhancement requests:
Fred Lackey
[email protected]
http://fredlackey.com