uutils / uutils/coreutils

bug(ls): Time Style Parser Edge Cases (Part 1)

Open
#14,727 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

U - ls
Dominant language
Rust
Stars
24.1k
Forks
2k
Avg merge
1d 5h
Merged PRs (30d)
365

Description

Hi, uutils maintenrs

the first edge case is

relunsec@relunsec:~/software/coreutils/target/debug$ TIME_STYLE=$'+%\na' ./ls -lah | head -n 12
total 3.2G
drwxrwxr-x   7 relunsec relunsec  462 % .
drwxrwxr-x   4 relunsec relunsec    7 % ..
-rw-rw-r--   1 relunsec relunsec    0 % 1o6iHq6D6FKsl7187mIs65fv8LQirsHfB
-rw-rw-r--   2 relunsec relunsec    3 % a
-rwxr-xr-x   1 relunsec relunsec    3 % a@
-rw-rw-r--   1 relunsec relunsec    3 % a~
-rwxrwxr-x   2 relunsec relunsec  77M % arch
-rw-rw-r--   1 relunsec relunsec  13K % arch.d
-rw-rw-r--   1 relunsec relunsec    0 % a.txt
-rw-rw-r--   2 relunsec relunsec    3 % b
-rwxrwxr-x   2 relunsec relunsec  81M % b2sum
relunsec@relunsec:~/software/coreutils/target/debug$ TIME_STYLE=$'+%\na' gnuls -lah | head -n 12
total 3.2G
drwxrwxr-x   7 relunsec relunsec  462 a .
drwxrwxr-x   4 relunsec relunsec    7 a ..
-rw-rw-r--   1 relunsec relunsec    0 a 1o6iHq6D6FKsl7187mIs65fv8LQirsHfB
-rw-rw-r--   2 relunsec relunsec    3 a a
-rwxr-xr-x   1 relunsec relunsec    3 a a@
-rw-rw-r--   1 relunsec relunsec    3 a a~
-rwxrwxr-x   2 relunsec relunsec  77M a arch
-rw-rw-r--   1 relunsec relunsec  13K a arch.d
-rw-rw-r--   1 relunsec relunsec    0 a a.txt
-rw-rw-r--   2 relunsec relunsec    3 a b
-rwxrwxr-x   2 relunsec relunsec  81M a b2sum
relunsec@relunsec:~/software/coreutils/target/debug$ 

Also

relunsec@relunsec:~/software/coreutils/target/debug$ TIME_STYLE=$'+\na' ./ls -lah | head -n 12
total 3.2G
drwxrwxr-x   7 relunsec relunsec  462  .
drwxrwxr-x   4 relunsec relunsec    7  ..
-rw-rw-r--   1 relunsec relunsec    0  1o6iHq6D6FKsl7187mIs65fv8LQirsHfB
-rw-rw-r--   2 relunsec relunsec    3  a
-rwxr-xr-x   1 relunsec relunsec    3  a@
-rw-rw-r--   1 relunsec relunsec    3  a~
-rwxrwxr-x   2 relunsec relunsec  77M  arch
-rw-rw-r--   1 relunsec relunsec  13K  arch.d
-rw-rw-r--   1 relunsec relunsec    0  a.txt
-rw-rw-r--   2 relunsec relunsec    3  b
-rwxrwxr-x   2 relunsec relunsec  81M  b2sum
relunsec@relunsec:~/software/coreutils/target/debug$ 

also

relunsec@relunsec:~/software/coreutils/target/debug$ TIME_STYLE=$'+%100c' ./ls -lah | head -n 12
total 3.2G
drwxrwxr-x   7 relunsec relunsec  462 2026 M09 19, Sat 08:55:09 .
drwxrwxr-x   4 relunsec relunsec    7 2026 M08 9, Sun 08:41:37 ..
-rw-rw-r--   1 relunsec relunsec    0 2026 M08 9, Sun 08:38:43 1o6iHq6D6FKsl7187mIs65fv8LQirsHfB
-rw-rw-r--   2 relunsec relunsec    3 2026 M08 11, Tue 03:42:51 a
-rwxr-xr-x   1 relunsec relunsec    3 2026 M08 9, Sun 09:44:48 a@
-rw-rw-r--   1 relunsec relunsec    3 2026 M08 9, Sun 09:44:16 a~
-rwxrwxr-x   2 relunsec relunsec  77M 2026 M08 9, Sun 06:44:55 arch
-rw-rw-r--   1 relunsec relunsec  13K 2026 M08 9, Sun 06:45:21 arch.d
-rw-rw-r--   1 relunsec relunsec    0 2026 M09 18, Fri 12:12:05 a.txt
-rw-rw-r--   2 relunsec relunsec    3 2026 M08 11, Tue 03:42:51 b
-rwxrwxr-x   2 relunsec relunsec  81M 2026 M08 9, Sun 06:45:17 b2sum
relunsec@relunsec:~/software/coreutils/target/debug$ TIME_STYLE=$'+%100c' gnuls -lah | head -n 12
total 3.2G
drwxrwxr-x   7 relunsec relunsec  462                                                                      Sat 19 Sep 2026 08:55:09 AM EDT .
drwxrwxr-x   4 relunsec relunsec    7                                                                      Sun 09 Aug 2026 08:41:37 AM EDT ..
-rw-rw-r--   1 relunsec relunsec    0                                                                      Sun 09 Aug 2026 08:38:43 AM EDT 1o6iHq6D6FKsl7187mIs65fv8LQirsHfB
-rw-rw-r--   2 relunsec relunsec    3                                                                      Tue 11 Aug 2026 03:42:51 AM EDT a
-rwxr-xr-x   1 relunsec relunsec    3                                                                      Sun 09 Aug 2026 09:44:48 AM EDT a@
-rw-rw-r--   1 relunsec relunsec    3                                                                      Sun 09 Aug 2026 09:44:16 AM EDT a~
-rwxrwxr-x   2 relunsec relunsec  77M                                                                      Sun 09 Aug 2026 06:44:55 AM EDT arch
-rw-rw-r--   1 relunsec relunsec  13K                                                                      Sun 09 Aug 2026 06:45:21 AM EDT arch.d
-rw-rw-r--   1 relunsec relunsec    0                                                                      Fri 18 Sep 2026 12:12:05 PM EDT a.txt
-rw-rw-r--   2 relunsec relunsec    3                                                                      Tue 11 Aug 2026 03:42:51 AM EDT b
-rwxrwxr-x   2 relunsec relunsec  81M                                                                      Sun 09 Aug 2026 06:45:17 AM EDT b2sum
relunsec@relunsec:~/software/coreutils/target/debug$ 

or simply

relunsec@relunsec:~/software/coreutils/target/debug$ TIME_STYLE=$'+%c' gnuls -lah | head -n 12
total 3.2G
drwxrwxr-x   7 relunsec relunsec  462 Sat 19 Sep 2026 08:55:09 AM EDT .
drwxrwxr-x   4 relunsec relunsec    7 Sun 09 Aug 2026 08:41:37 AM EDT ..
-rw-rw-r--   1 relunsec relunsec    0 Sun 09 Aug 2026 08:38:43 AM EDT 1o6iHq6D6FKsl7187mIs65fv8LQirsHfB
-rw-rw-r--   2 relunsec relunsec    3 Tue 11 Aug 2026 03:42:51 AM EDT a
-rwxr-xr-x   1 relunsec relunsec    3 Sun 09 Aug 2026 09:44:48 AM EDT a@
-rw-rw-r--   1 relunsec relunsec    3 Sun 09 Aug 2026 09:44:16 AM EDT a~
-rwxrwxr-x   2 relunsec relunsec  77M Sun 09 Aug 2026 06:44:55 AM EDT arch
-rw-rw-r--   1 relunsec relunsec  13K Sun 09 Aug 2026 06:45:21 AM EDT arch.d
-rw-rw-r--   1 relunsec relunsec    0 Fri 18 Sep 2026 12:12:05 PM EDT a.txt
-rw-rw-r--   2 relunsec relunsec    3 Tue 11 Aug 2026 03:42:51 AM EDT b
-rwxrwxr-x   2 relunsec relunsec  81M Sun 09 Aug 2026 06:45:17 AM EDT b2sum
relunsec@relunsec:~/software/coreutils/target/debug$ TIME_STYLE=$'+%c' ./ls -lah | head -n 12
total 3.2G
drwxrwxr-x   7 relunsec relunsec  462 2026 M09 19, Sat 08:55:09 .
drwxrwxr-x   4 relunsec relunsec    7 2026 M08 9, Sun 08:41:37 ..
-rw-rw-r--   1 relunsec relunsec    0 2026 M08 9, Sun 08:38:43 1o6iHq6D6FKsl7187mIs65fv8LQirsHfB
-rw-rw-r--   2 relunsec relunsec    3 2026 M08 11, Tue 03:42:51 a
-rwxr-xr-x   1 relunsec relunsec    3 2026 M08 9, Sun 09:44:48 a@
-rw-rw-r--   1 relunsec relunsec    3 2026 M08 9, Sun 09:44:16 a~
-rwxrwxr-x   2 relunsec relunsec  77M 2026 M08 9, Sun 06:44:55 arch
-rw-rw-r--   1 relunsec relunsec  13K 2026 M08 9, Sun 06:45:21 arch.d
-rw-rw-r--   1 relunsec relunsec    0 2026 M09 18, Fri 12:12:05 a.txt
-rw-rw-r--   2 relunsec relunsec    3 2026 M08 11, Tue 03:42:51 b
-rwxrwxr-x   2 relunsec relunsec  81M 2026 M08 9, Sun 06:45:17 b2sum
relunsec@relunsec:~/software/coreutils/target/debug$ 

also with

relunsec@relunsec:~/software/coreutils/target/debug$ TIME_STYLE=$'+%100Y' ./ls -lah | head -n 12
total 3.2G
drwxrwxr-x   7 relunsec relunsec  462 00000000000000002026 .
drwxrwxr-x   4 relunsec relunsec    7 00000000000000002026 ..
-rw-rw-r--   1 relunsec relunsec    0 00000000000000002026 1o6iHq6D6FKsl7187mIs65fv8LQirsHfB
-rw-rw-r--   2 relunsec relunsec    3 00000000000000002026 a
-rwxr-xr-x   1 relunsec relunsec    3 00000000000000002026 a@
-rw-rw-r--   1 relunsec relunsec    3 00000000000000002026 a~
-rwxrwxr-x   2 relunsec relunsec  77M 00000000000000002026 arch
-rw-rw-r--   1 relunsec relunsec  13K 00000000000000002026 arch.d
-rw-rw-r--   1 relunsec relunsec    0 00000000000000002026 a.txt
-rw-rw-r--   2 relunsec relunsec    3 00000000000000002026 b
-rwxrwxr-x   2 relunsec relunsec  81M 00000000000000002026 b2sum
relunsec@relunsec:~/software/coreutils/target/debug$ TIME_STYLE=$'+%100Y' gnuls -lah | head -n 12
total 3.2G
drwxrwxr-x   7 relunsec relunsec  462 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002026 .
drwxrwxr-x   4 relunsec relunsec    7 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002026 ..
-rw-rw-r--   1 relunsec relunsec    0 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002026 1o6iHq6D6FKsl7187mIs65fv8LQirsHfB
-rw-rw-r--   2 relunsec relunsec    3 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002026 a
-rwxr-xr-x   1 relunsec relunsec    3 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002026 a@
-rw-rw-r--   1 relunsec relunsec    3 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002026 a~
-rwxrwxr-x   2 relunsec relunsec  77M 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002026 arch
-rw-rw-r--   1 relunsec relunsec  13K 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002026 arch.d
-rw-rw-r--   1 relunsec relunsec    0 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002026 a.txt
-rw-rw-r--   2 relunsec relunsec    3 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002026 b
-rwxrwxr-x   2 relunsec relunsec  81M 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002026 b2sum
relunsec@relunsec:~/software/coreutils/target/debug$ 

also with

relunsec@relunsec:~/software/coreutils/target/debug$ TIME_STYLE=$'+%#a' gnuls -lah | head -n 12
total 3.2G
drwxrwxr-x   7 relunsec relunsec  462 SAT .
drwxrwxr-x   4 relunsec relunsec    7 SUN ..
-rw-rw-r--   1 relunsec relunsec    0 SUN 1o6iHq6D6FKsl7187mIs65fv8LQirsHfB
-rw-rw-r--   2 relunsec relunsec    3 TUE a
-rwxr-xr-x   1 relunsec relunsec    3 SUN a@
-rw-rw-r--   1 relunsec relunsec    3 SUN a~
-rwxrwxr-x   2 relunsec relunsec  77M SUN arch
-rw-rw-r--   1 relunsec relunsec  13K SUN arch.d
-rw-rw-r--   1 relunsec relunsec    0 FRI a.txt
-rw-rw-r--   2 relunsec relunsec    3 TUE b
-rwxrwxr-x   2 relunsec relunsec  81M SUN b2sum
relunsec@relunsec:~/software/coreutils/target/debug$ TIME_STYLE=$'+%#a' ./ls -lah | head -n 12
total 3.2G
drwxrwxr-x   7 relunsec relunsec  462 Sat .
drwxrwxr-x   4 relunsec relunsec    7 Sun ..
-rw-rw-r--   1 relunsec relunsec    0 Sun 1o6iHq6D6FKsl7187mIs65fv8LQirsHfB
-rw-rw-r--   2 relunsec relunsec    3 Tue a
-rwxr-xr-x   1 relunsec relunsec    3 Sun a@
-rw-rw-r--   1 relunsec relunsec    3 Sun a~
-rwxrwxr-x   2 relunsec relunsec  77M Sun arch
-rw-rw-r--   1 relunsec relunsec  13K Sun arch.d
-rw-rw-r--   1 relunsec relunsec    0 Fri a.txt
-rw-rw-r--   2 relunsec relunsec    3 Tue b
-rwxrwxr-x   2 relunsec relunsec  81M Sun b2sum
relunsec@relunsec:~/software/coreutils/target/debug$ TIME_STYLE=$'+%##a' ./ls -lah | head -n 12
total 3.2G
drwxrwxr-x   7 relunsec relunsec  462 %##a .
drwxrwxr-x   4 relunsec relunsec    7 %##a ..
-rw-rw-r--   1 relunsec relunsec    0 %##a 1o6iHq6D6FKsl7187mIs65fv8LQirsHfB
-rw-rw-r--   2 relunsec relunsec    3 %##a a
-rwxr-xr-x   1 relunsec relunsec    3 %##a a@
-rw-rw-r--   1 relunsec relunsec    3 %##a a~
-rwxrwxr-x   2 relunsec relunsec  77M %##a arch
-rw-rw-r--   1 relunsec relunsec  13K %##a arch.d
-rw-rw-r--   1 relunsec relunsec    0 %##a a.txt
-rw-rw-r--   2 relunsec relunsec    3 %##a b
-rwxrwxr-x   2 relunsec relunsec  81M %##a b2sum
relunsec@relunsec:~/software/coreutils/target/debug$ TIME_STYLE=$'+%##a' gnuls -lah | head -n 12
total 3.2G
drwxrwxr-x   7 relunsec relunsec  462 SAT .
drwxrwxr-x   4 relunsec relunsec    7 SUN ..
-rw-rw-r--   1 relunsec relunsec    0 SUN 1o6iHq6D6FKsl7187mIs65fv8LQirsHfB
-rw-rw-r--   2 relunsec relunsec    3 TUE a
-rwxr-xr-x   1 relunsec relunsec    3 SUN a@
-rw-rw-r--   1 relunsec relunsec    3 SUN a~
-rwxrwxr-x   2 relunsec relunsec  77M SUN arch
-rw-rw-r--   1 relunsec relunsec  13K SUN arch.d
-rw-rw-r--   1 relunsec relunsec    0 FRI a.txt
-rw-rw-r--   2 relunsec relunsec    3 TUE b
-rwxrwxr-x   2 relunsec relunsec  81M SUN b2sum
relunsec@relunsec:~/software/coreutils/target/debug$ 

also more edge cases

relunsec@relunsec:~/software/coreutils/target/debug$ TIME_STYLE=$'+%^^a' ./ls -lah | head -n 12
total 3.2G
drwxrwxr-x   7 relunsec relunsec  462 %^^a .
drwxrwxr-x   4 relunsec relunsec    7 %^^a ..
-rw-rw-r--   1 relunsec relunsec    0 %^^a 1o6iHq6D6FKsl7187mIs65fv8LQirsHfB
-rw-rw-r--   2 relunsec relunsec    3 %^^a a
-rwxr-xr-x   1 relunsec relunsec    3 %^^a a@
-rw-rw-r--   1 relunsec relunsec    3 %^^a a~
-rwxrwxr-x   2 relunsec relunsec  77M %^^a arch
-rw-rw-r--   1 relunsec relunsec  13K %^^a arch.d
-rw-rw-r--   1 relunsec relunsec    0 %^^a a.txt
-rw-rw-r--   2 relunsec relunsec    3 %^^a b
-rwxrwxr-x   2 relunsec relunsec  81M %^^a b2sum
relunsec@relunsec:~/software/coreutils/target/debug$ TIME_STYLE=$'+%^^a' gnuls -lah | head -n 12
total 3.2G
drwxrwxr-x   7 relunsec relunsec  462 SAT .
drwxrwxr-x   4 relunsec relunsec    7 SUN ..
-rw-rw-r--   1 relunsec relunsec    0 SUN 1o6iHq6D6FKsl7187mIs65fv8LQirsHfB
-rw-rw-r--   2 relunsec relunsec    3 TUE a
-rwxr-xr-x   1 relunsec relunsec    3 SUN a@
-rw-rw-r--   1 relunsec relunsec    3 SUN a~
-rwxrwxr-x   2 relunsec relunsec  77M SUN arch
-rw-rw-r--   1 relunsec relunsec  13K SUN arch.d
-rw-rw-r--   1 relunsec relunsec    0 FRI a.txt
-rw-rw-r--   2 relunsec relunsec    3 TUE b
-rwxrwxr-x   2 relunsec relunsec  81M SUN b2sum
relunsec@relunsec:~/software/coreutils/target/debug$ TIME_STYLE=$'+%^#a' ./ls -lah | head -n 12
total 3.2G
drwxrwxr-x   7 relunsec relunsec  462 %^#a .
drwxrwxr-x   4 relunsec relunsec    7 %^#a ..
-rw-rw-r--   1 relunsec relunsec    0 %^#a 1o6iHq6D6FKsl7187mIs65fv8LQirsHfB
-rw-rw-r--   2 relunsec relunsec    3 %^#a a
-rwxr-xr-x   1 relunsec relunsec    3 %^#a a@
-rw-rw-r--   1 relunsec relunsec    3 %^#a a~
-rwxrwxr-x   2 relunsec relunsec  77M %^#a arch
-rw-rw-r--   1 relunsec relunsec  13K %^#a arch.d
-rw-rw-r--   1 relunsec relunsec    0 %^#a a.txt
-rw-rw-r--   2 relunsec relunsec    3 %^#a b
-rwxrwxr-x   2 relunsec relunsec  81M %^#a b2sum
relunsec@relunsec:~/software/coreutils/target/debug$ TIME_STYLE=$'+%^-a' ./ls -lah | head -n 12
total 3.2G
drwxrwxr-x   7 relunsec relunsec  462 %^-a .
drwxrwxr-x   4 relunsec relunsec    7 %^-a ..
-rw-rw-r--   1 relunsec relunsec    0 %^-a 1o6iHq6D6FKsl7187mIs65fv8LQirsHfB
-rw-rw-r--   2 relunsec relunsec    3 %^-a a
-rwxr-xr-x   1 relunsec relunsec    3 %^-a a@
-rw-rw-r--   1 relunsec relunsec    3 %^-a a~
-rwxrwxr-x   2 relunsec relunsec  77M %^-a arch
-rw-rw-r--   1 relunsec relunsec  13K %^-a arch.d
-rw-rw-r--   1 relunsec relunsec    0 %^-a a.txt
-rw-rw-r--   2 relunsec relunsec    3 %^-a b
-rwxrwxr-x   2 relunsec relunsec  81M %^-a b2sum
relunsec@relunsec:~/software/coreutils/target/debug$ TIME_STYLE=$'+%^-a' gnuls -lah | head -n 12
total 3.2G
drwxrwxr-x   7 relunsec relunsec  462 SAT .
drwxrwxr-x   4 relunsec relunsec    7 SUN ..
-rw-rw-r--   1 relunsec relunsec    0 SUN 1o6iHq6D6FKsl7187mIs65fv8LQirsHfB
-rw-rw-r--   2 relunsec relunsec    3 TUE a
-rwxr-xr-x   1 relunsec relunsec    3 SUN a@
-rw-rw-r--   1 relunsec relunsec    3 SUN a~
-rwxrwxr-x   2 relunsec relunsec  77M SUN arch
-rw-rw-r--   1 relunsec relunsec  13K SUN arch.d
-rw-rw-r--   1 relunsec relunsec    0 FRI a.txt
-rw-rw-r--   2 relunsec relunsec    3 TUE b
-rwxrwxr-x   2 relunsec relunsec  81M SUN b2sum
relunsec@relunsec:~/software/coreutils/target/debug$ 

here is more

relunsec@relunsec:~/software/coreutils/target/debug$ TIME_STYLE=$'+%:%a' ./ls -lah | head -n 12
total 3.2G
drwxrwxr-x   7 relunsec relunsec  462 %a .
drwxrwxr-x   4 relunsec relunsec    7 %a ..
-rw-rw-r--   1 relunsec relunsec    0 %a 1o6iHq6D6FKsl7187mIs65fv8LQirsHfB
-rw-rw-r--   2 relunsec relunsec    3 %a a
-rwxr-xr-x   1 relunsec relunsec    3 %a a@
-rw-rw-r--   1 relunsec relunsec    3 %a a~
-rwxrwxr-x   2 relunsec relunsec  77M %a arch
-rw-rw-r--   1 relunsec relunsec  13K %a arch.d
-rw-rw-r--   1 relunsec relunsec    0 %a a.txt
-rw-rw-r--   2 relunsec relunsec    3 %a b
-rwxrwxr-x   2 relunsec relunsec  81M %a b2sum
relunsec@relunsec:~/software/coreutils/target/debug$ TIME_STYLE=$'+%:%a' gnuls -lah | head -n 12
total 3.2G
drwxrwxr-x   7 relunsec relunsec  462 %:Sat .
drwxrwxr-x   4 relunsec relunsec    7 %:Sun ..
-rw-rw-r--   1 relunsec relunsec    0 %:Sun 1o6iHq6D6FKsl7187mIs65fv8LQirsHfB
-rw-rw-r--   2 relunsec relunsec    3 %:Tue a
-rwxr-xr-x   1 relunsec relunsec    3 %:Sun a@
-rw-rw-r--   1 relunsec relunsec    3 %:Sun a~
-rwxrwxr-x   2 relunsec relunsec  77M %:Sun arch
-rw-rw-r--   1 relunsec relunsec  13K %:Sun arch.d
-rw-rw-r--   1 relunsec relunsec    0 %:Fri a.txt
-rw-rw-r--   2 relunsec relunsec    3 %:Tue b
-rwxrwxr-x   2 relunsec relunsec  81M %:Sun b2sum
relunsec@relunsec:~/software/coreutils/target/debug$ 

Especially after i see https://ftp.gnu.org/old-gnu/Manuals/coreutils-4.5.4/html_node/coreutils_58.html

i see includes an example

 	

newline='
'
ls -l --time-style="+%Y-%m-%d $newline%m-%d %H:%M"
ls -l --time-style="iso"
``

one of these examples is, i runned the second

```rust
relunsec@relunsec:~/software/coreutils/target/debug$ ./ls -l --time-style=$'+%Y-%m-%d \n%m-%d %H:%M' | head -n 9
total 3334625
-rw-rw-r--   1 relunsec relunsec        0 2026-08-09  1o6iHq6D6FKsl7187mIs65fv8LQirsHfB
-rw-rw-r--   2 relunsec relunsec        3 2026-08-11  a
-rwxr-xr-x   1 relunsec relunsec        3 2026-08-09  a@
-rw-rw-r--   1 relunsec relunsec        3 2026-08-09  a~
-rwxrwxr-x   2 relunsec relunsec 80453448 2026-08-09  arch
-rw-rw-r--   1 relunsec relunsec    12794 2026-08-09  arch.d
-rw-rw-r--   1 relunsec relunsec        0 2026-09-18  a.txt
-rw-rw-r--   2 relunsec relunsec        3 2026-08-11  b
relunsec@relunsec:~/software/coreutils/target/debug$ gnuls -l --time-style=$'+%Y-%m-%d \n%m-%d %H:%M' | head -n 9
total 3334625
-rw-rw-r--   1 relunsec relunsec        0 08-09 08:38 1o6iHq6D6FKsl7187mIs65fv8LQirsHfB
-rw-rw-r--   2 relunsec relunsec        3 08-11 03:42 a
-rwxr-xr-x   1 relunsec relunsec        3 08-09 09:44 a@
-rw-rw-r--   1 relunsec relunsec        3 08-09 09:44 a~
-rwxrwxr-x   2 relunsec relunsec 80453448 08-09 06:44 arch
-rw-rw-r--   1 relunsec relunsec    12794 08-09 06:45 arch.d
-rw-rw-r--   1 relunsec relunsec        0 09-18 12:12 a.txt
-rw-rw-r--   2 relunsec relunsec        3 08-11 03:42 b
relunsec@relunsec:~/software/coreutils/target/debug$ 

and i see uutils breaks the official gnu example and not work properly, that must be fixed

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the ls implementation's TIME_STYLE parsing and formatting path, then reproduce the shown cases using formats such as +%\na, +%c, +%100c, +%100Y, %#a, and %##a. Add regression coverage for the demonstrated edge cases and verify that output matches gnuls for each supported format.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.