29 Oct 2026
find prints numbers and names with the same formatting options as GNU
- What was broken
- find's custom print format only knew a width. Asking to cut a name short, pad a number with zeros, or show a sign printed the format code itself plus warnings.
- What I changed
- find now understands those options the same way GNU find does, for every kind of value it can print.
- Why it matters
- Scripts that format find's output for GNU find now give the same result here.
see the code, #918 ↗ (opens in a new tab)
26 Oct 2026
find -ls shows file times in your own time zone
- What was broken
- find's -ls output showed modification times in UTC, so on most machines the time was off by hours compared to GNU find and ls.
- What I changed
- The time is now shown in the local time zone, in both the Unix and Windows code.
- Why it matters
- File listings show the same times as every other tool on the machine.
see the code, #922 ↗ (opens in a new tab)
25 Oct 2026
xargs -I reads input lines like GNU
- What was broken
- With -I, each input line went in raw: leading spaces stayed, blank lines still ran the command, quotes were kept and the end marker was ignored.
- What I changed
- -I now skips leading blanks and blank lines, handles quotes like plain xargs, and stops at the end marker, keeping each line as one argument.
- Why it matters
- Scripts that feed lines to xargs -I get the same commands as on GNU systems.
see the code, #921 ↗ (opens in a new tab)
25 Oct 2026
xargs splits arguments only at spaces, tabs and newlines
- What was broken
- xargs also split arguments at carriage returns and form feeds. A file with Windows line endings lost the carriage return at the end of each line's last word.
- What I changed
- Only spaces, tabs and newlines separate arguments now. Other control characters stay inside the word, as in GNU xargs.
- Why it matters
- Input with Windows line endings or other control characters gives the same arguments as with GNU xargs.
see the code, #920 ↗ (opens in a new tab)
24 Oct 2026
A test keeps the stop-printing escape honest
- What was broken
- The earlier fix that made find stop a print format at the stop escape had no test showing that the next action still runs for each file.
- What I changed
- A new test runs two print actions and checks that the second still runs after the first stops early, matching GNU find.
- Why it matters
- The fix cannot quietly break later without a test failing.
see the code, #919 ↗ (opens in a new tab)
24 Oct 2026
Dates in -printf pad the day with a space
- What was broken
- The %t, %a and %c dates in find's -printf wrote early days of the month with a leading zero, like Jan 02, while GNU find writes Jan 2.
- What I changed
- The day is now padded with a space, the classic format GNU find uses.
- Why it matters
- Output that scripts compare or parse matches GNU find.
see the code, #917 ↗ (opens in a new tab)
24 Oct 2026
The -ls listing shows real disk usage and link targets
- What was broken
- find's -ls listing showed every file's size rounded up as its disk usage, so a mostly empty sparse file looked huge, and symlinks did not show where they point.
- What I changed
- It now shows the space a file really uses on disk, and each symlink is followed by an arrow and its target, like GNU find.
- Why it matters
- Scripts and people reading -ls output see the same columns as with GNU find.
see the code, #916 ↗ (opens in a new tab)
24 Oct 2026
\c in -printf stops the output
- What was broken
- GNU find's manual says \c in a -printf format stops printing right there. Here it only flushed the output, and the rest of the format was still printed.
- What I changed
- Printing now stops at \c. Later actions on the same file still run, as in GNU find.
- Why it matters
- Scripts that use \c to cut a line short get the same output as with GNU find.
see the code, #910 ↗ (opens in a new tab)
23 Oct 2026
Date filters accept any date the date command understands
- What was broken
- find's newer-than-a-date filters only took two fixed date layouts and read them as UTC. Common forms like yesterday, 1 day ago or an ISO date were rejected, and local times came out hours off.
- What I changed
- find now reads these dates with the same parser the date and touch commands use, in local time.
- Why it matters
- Date searches that work with GNU find work here too, and land on the right hour.
see the code, #915 ↗ (opens in a new tab)
22 Oct 2026
Date filters now need a file to be strictly newer
- What was broken
- Asking find for files newer than a date also matched files with exactly that time, and dates before 1970 lost their minus sign, so a file from 1960 counted as newer than 1965.
- What I changed
- A file now has to be strictly newer than the date, and times before 1970 compare the right way round.
- Why it matters
- Searches by date return the same files GNU find does.
see the code, #914 ↗ (opens in a new tab)
← every project