diff -rup coreutils-9.5/src/digest.c coreutils-9.5-1/src/digest.c
--- coreutils-9.5/src/digest.c	2024-03-06 22:56:00.000000000 +0100
+++ coreutils-9.5-1/src/digest.c	2024-12-17 09:37:09.000000000 +0100
@@ -366,7 +366,6 @@ enum
 {
   IGNORE_MISSING_OPTION = CHAR_MAX + 1,
   STATUS_OPTION,
-  QUIET_OPTION,
   STRICT_OPTION,
   TAG_OPTION,
   UNTAG_OPTION,
@@ -384,7 +383,7 @@ static struct option const long_options[
 #if !HASH_ALGO_SUM
   { "check", no_argument, nullptr, 'c' },
   { "ignore-missing", no_argument, nullptr, IGNORE_MISSING_OPTION},
-  { "quiet", no_argument, nullptr, QUIET_OPTION },
+  { "quiet", no_argument, nullptr, 'q' },
   { "status", no_argument, nullptr, STATUS_OPTION },
   { "warn", no_argument, nullptr, 'w' },
   { "strict", no_argument, nullptr, STRICT_OPTION },
@@ -491,6 +490,10 @@ Print or check %s (%d-bit) checksums.\n\
       --tag             create a BSD-style checksum\n\
 "), stdout);
 # endif
+      fputs (_("\
+  -q, --quiet           only print the checksum (quiet mode)\n\
+                          when verifying checksums, only print the failed cases\n\
+"), stdout);
 # if !HASH_ALGO_CKSUM
       if (O_BINARY)
         fputs (_("\
@@ -509,7 +512,6 @@ Print or check %s (%d-bit) checksums.\n\
 \n\
 The following five options are useful only when verifying checksums:\n\
       --ignore-missing  don't fail or report status for missing files\n\
-      --quiet           don't print OK for each successfully verified file\n\
       --status          don't output anything, status code shows success\n\
       --strict          exit non-zero for improperly formatted checksum lines\n\
   -w, --warn            warn about improperly formatted checksum lines\n\
@@ -1052,7 +1054,7 @@ output_file (char const *file, int binar
   if (needs_escape)
     putchar ('\\');
 
-  if (tagged)
+  if (tagged && !quiet)
     {
       fputs (DIGEST_TYPE_STRING, stdout);
 # if HASH_ALGO_BLAKE2
@@ -1085,7 +1087,7 @@ output_file (char const *file, int binar
         printf ("%02x", bin_buffer[i]);
     }
 
-  if (!tagged)
+  if (!tagged && !quiet)
     {
       putchar (' ');
       putchar (binary_file ? '*' : ' ');
@@ -1368,13 +1370,13 @@ main (int argc, char **argv)
 #if HASH_ALGO_SUM
   char const *short_opts = "rs";
 #elif HASH_ALGO_CKSUM
-  char const *short_opts = "a:l:bctwz";
+  char const *short_opts = "a:l:bcqtwz";
   char const *digest_length_str = "";
 #elif HASH_ALGO_BLAKE2
-  char const *short_opts = "l:bctwz";
+  char const *short_opts = "l:bcqtwz";
   char const *digest_length_str = "";
 #else
-  char const *short_opts = "bctwz";
+  char const *short_opts = "bcqtwz";
 #endif
 
   while ((opt = getopt_long (argc, argv, short_opts, long_options, nullptr))
@@ -1422,7 +1424,7 @@ main (int argc, char **argv)
       case IGNORE_MISSING_OPTION:
         ignore_missing = true;
         break;
-      case QUIET_OPTION:
+      case 'q':
         status_only = false;
         warn = false;
         quiet = true;
@@ -1582,13 +1584,6 @@ main (int argc, char **argv)
       usage (EXIT_FAILURE);
     }
 
-  if (quiet && !do_check)
-    {
-      error (0, 0,
-       _("the --quiet option is meaningful only when verifying checksums"));
-      usage (EXIT_FAILURE);
-    }
-
   if (strict & !do_check)
    {
      error (0, 0,
