code: static void printUsage() {
      System.err.println("Usage: DFSck <path> [-list-corruptfileblocks | " +
                         "[-move | -delete | -openforwrite ] " +
                         "[-files [-blocks [-locations | -racks]]]] " +
                         "[-limit <limit>] [-service serviceName]" + 
                         "[-(zero/one)]");
      System.err.println("\t<path>\tstart checking from this path");
      System.err.println("\t-move\tmove corrupted files to /lost+found");
      System.err.println("\t-delete\tdelete corrupted files");
      System.err.println("\t-files\tprint out files being checked");
      System.err.println("\t-openforwrite\tprint out files opened for write");
      System.err.println("\t-list-corruptfileblocks\tprint out list of missing " +
                         "blocks and files they belong to");
      System.err.println("\t-blocks\tprint out block report");
      System.err.println("\t-locations\tprint out locations for every block");
      System.err.println("\t-racks\tprint out network topology for data-node locations");
      System.err.println("\t-limit\tlimit output to <limit> corrupt files. " +
                         "The default value of the limit is 500.");
      System.err.println("\t\tBy default fsck ignores files opened for write, " +
                         "use -openforwrite to report such files. They are usually " +
                         " tagged CORRUPT or HEALTHY depending on their block " +
                          "allocation status");
      ToolRunner.printGenericCommandUsage(System.err);
    }
docs: Print fsck usage information