IntegrityChecker java (icj): 'update', 'update-all', 'update-new' commands
You can update a single volume or a single folder, or any number and combination of volumes or folders at once. Update automatically takes care of extended file attributes (if available and enabled).
The update command updates files and folders that:
- Are new files (those that have no hash info yet).
- Have a hash already, but have changed file date or size, flagging changes appropriately.
- Lack a creation date in their hash info.
- Have a conflict between ic/icj/icjh hash info and extended attribute hash info.
- Use a legacy hash algorithm
- Flags missing files or folders.
The update-new command updates files and folders that are new (have no existing hash info, which could be icjh, icj, icj or extended attribute). Fles with existing reference info are not examined even if they have changed date or size. Use the update-new command when it is desirable to include new files, but to leave all else alone.
The update-all command rehashes all files, whether or not a hash already exists, flagging changes appropriately. Use update-all only if it is suspected that hash information has been corrupted. This command might be removed in a future release.
TIP: insight into missing files vs moved or renamed files
For maximum insight into moved or renamed files vs truly missing files, perform the update on an entire volume(s) or on a higher-level folder(s) spanning all affected subfolders. That allows icj to cross-match files that might have been moved or renamed. If files have been moved to new locations, then update those new locations FIRST so that icj can use the hashes.
Normally update saves all changes, but it can be run without saving changes, or prompting to save, as follows. This might be used when one is unsure where files have gone to and one wishes to leave things alone until that is understood. Available with icj 2.03.b10 or later.
icj update --save=prompt <args>
icj update --save=no <args>
Command line usage
icj update [<path>]*
Options
The "|" symbol indicates one of the items, only.
--optimize=HDD|SSD
--threads=num
--large-buffers=num
--large-buffer-size=MB
--save=prompt|no
Examples
Lines starting with "#" are comments.
# Update the contents of the current directory — no arguments needed
icj update
# Update the contents of three folders in the current directory
icj update Folder1 Folder2 Folder3
# Update the contents of volume “Master”
icj update Master
# Update your Documents folder in your home directory:
icj update ~/Documents
# Update all volumes whose name includes "Clone" (macOS path form)
icj update /Volumes/*Clone*
# Update, prompting whether to save or not:
icj update --save=prompt
# force to assume hard drive, reduce threads and buffers accordingly:
icj update --optimize HDD MyData
# control the CPU and memory usage manually with 2 hashing threads, 4 large buffers of 8MB each:
icj update --threads 2 --large-buffers 4 --large-buffer-size 8M MyData
Copyright © 2022 diglloyd Inc, all rights reserved