@Override
		public void run() {
			Msg.info(this, "Starting cache cleanup: " + cacheDir);
			cacheMaintForDir(cacheDir, 0);
			Msg.info(this,
				"Finished cache cleanup, estimated storage used: " + storageEstimateBytes);

			// stamp the file after we finish, in case the VM stopped this daemon thread
			try {
				FileUtilities.writeStringToFile(lastMaintFile, "Last maint run at " + (new Date()));
			}
			catch (IOException e) {
				Msg.error(this, "Unable to write file cache maintenance file: " + lastMaintFile, e);
			}
		}
Prunes cache if interval since last maintenance exceeds {@link #MAINT_INTERVAL_MS}
<p>
Only called during construction, and the only known multi-process conflict that can occur
is when re-writing the "lastMaint" timestamp file, which isn't a problem as its the
approximate timestamp of that file that is important, not the contents.

@param cacheDir cache directory location 
@param nestingLevel the depth of directory nesting, 2 for old style, 1 for newer style
@return {@link FileCacheMaintenanceDaemon} instance if started, null otherwise
Ghidra/Features/Base/src/main/java/ghidra/formats/gfilesystem/FileCache.java