Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

uutils findutils Documentation

The uutils findutils project reimplements the GNU findutils in Rust. It is available for Linux, Windows, Mac and other platforms.

uutils is licensed under the MIT License.

Note: This manual is automatically generated from the source code and is a work in progress.

Installation

This is a list of uutils packages in various distributions and package managers. Note that these are packaged by third-parties and the packages might contain patches.

You can also build findutils from source.

Cargo

crates.io package

cargo install findutils

Linux

Debian

Debian 13 package

Debian Unstable package

apt install rust-findutils
# To use it:
export PATH=/usr/lib/cargo/bin/findutils:$PATH

Gentoo

Gentoo package

emerge -pv sys-apps/uutils-findutils

MacOS

Homebrew

Homebrew package

brew install uutils-findutils

FreeBSD

FreeBSD port

pkg install rust-findutils

Windows

As far as we are aware, findutils has not been packaged for any package managers on Windows yet.

Build from source

TODO

Platform support

TODO

Contributing to findutils

Hi! Welcome to uutils/findutils!

Thanks for wanting to contribute to this project! This document explains everything you need to know to contribute. Before you start make sure to also check out these documents:

Now follows a very important warning:

Warning

uutils is original code and cannot contain any code from GNU or other implementations. This means that we cannot accept any changes based on the GNU source code. To make sure that cannot happen, you cannot link to the GNU source code either. It is however possible to look at other implementations under a BSD or MIT license like Apple’s implementation or OpenBSD.

Finally, feel free to join our Discord!

Design Goals

We have the following goals with our development:

  • Compatible: The utilities should be a drop-in replacement for the GNU findutils.
  • Cross-platform: All utilities should run on as many of the supported platforms as possible.
  • Reliable: The utilities should never unexpectedly fail.
  • Performant: Our utilities should be written in fast idiomatic Rust. We aim to match or exceed the performance of the GNU utilities.
  • Well-tested: We should have a lot of tests to be able to guarantee reliability and compatibility.

How to Help

There are several ways to help and writing code is just one of them. Reporting issues and writing documentation are just as important as writing code.

Reporting Issues

We can’t fix bugs we don’t know about, so good issues are super helpful! Here are some tips for writing good issues:

  • If you find a bug, make sure it’s still a problem on the main branch.
  • Search through the existing issues to see whether it has already been reported.
  • Make sure to include all relevant information, such as:
    • Which version of uutils did you check?
    • Which version of GNU findutils are you comparing with?
    • What platform are you on?
  • Provide a way to reliably reproduce the issue.
  • Be as specific as possible!

Writing Documentation

There’s never enough documentation. If you come across any documentation that could be improved, feel free to submit a PR for it!

Writing Code

If you want to submit a PR, make sure that you’ve discussed the solution with the maintainers beforehand. We want to avoid situations where you put a lot of work into a fix that we can’t merge! If there’s no issue for what you’re trying to fix yet, make one before you start working on the PR.

Generally, we try to follow what GNU is doing in terms of options and behavior. It is recommended to look at the GNU findtils manual (on the web, or locally using info <utility>). It is more in depth than the man pages and provides a good description of available features and their implementation details. But remember, you cannot look at the GNU source code!

Also remember that we can only merge PRs which pass our test suite, follow rustfmt, and do not have any warnings from clippy. See DEVELOPMENT.md for more information. Be sure to also read about our Rust style.

Our Rust Style

We want uutils to be written in idiomatic Rust, so here are some guidelines to follow. Some of these are aspirational, meaning that we don’t do them correctly everywhere in the code. If you find violations of the advice below, feel free to submit a patch!

Don’t panic!

The findutils should be very reliable. This means that we should never panic!. Therefore, you should avoid using .unwrap() and panic!. Sometimes the use of unreachable! can be justified with a comment explaining why that code is unreachable.

Don’t exit

We want uutils to be embeddable in other programs. This means that no function in uutils should exit the program. Doing so would also lead to code with more confusing control flow. Avoid therefore std::process::exit and similar functions which exit the program early.

unsafe

uutils cannot be entirely safe, because we have to call out to libc and do syscalls. However, we still want to limit our use of unsafe. We generally only accept unsafe for FFI, with very few exceptions. Note that performance is very rarely a valid argument for using unsafe.

If you still need to write code with unsafe, make sure to read the Rustonomicon and annotate the calls with // SAFETY: comments explaining why the use of unsafe is sound.

Macros

Macros can be a great tool, but they are also usually hard to understand. They should be used sparingly. Make sure to explore simpler options before you reach for a solution involving macros.

str, OsStr & Path

Rust has many string-like types, and sometimes it’s hard to choose the right one. It’s tempting to use str (and String) for everything, but that is not always the right choice for uutils, because we need to support invalid UTF-8, just like the GNU findutils. For example, paths on Linux might not be valid UTF-8! Whenever we are dealing with paths, we should therefore stick with OsStr and Path. Make sure that you only convert to str/String if you know that something is always valid UTF-8. If you need more operations on OsStr, you can use the bstr crate.

Doc-comments

We use rustdoc for our documentation, so it’s best to follow rustdoc’s guidelines. Make sure that your documentation is not just repeating the name of the function, but actually giving more useful information. Rustdoc recommends the following structure:

[short sentence explaining what it is]

[more detailed explanation]

[at least one code example that users can copy/paste to try it]

[even more advanced explanations if necessary]

Other comments

Comments should be written to explain the code, not to describe the code. Try to focus on explaining why the code is the way it is. If you feel like you have to describe the code, that’s usually a sign that you could improve the naming of variables and functions.

If you edit a piece of code, make sure to update any comments that need to change as a result. The only thing worse than having no comments is having outdated comments!

Git Etiquette

To ensure easy collaboration, we have guidelines for using Git and GitHub.

Commits

  • Make small and atomic commits.
  • Keep a clean history of commits.
  • Write informative commit messages.
  • Annotate your commit message with the component you’re editing. For example: cp: do not overwrite on with -i or uucore: add support for FreeBSD.
  • Do not unnecessarily move items around in the code. This makes the changes much harder to review. If you do need to move things around, do that in a separate commit.

Commit messages

You can read this section in the Git book to learn how to write good commit messages: https://git-scm.com/book/en/v2/Distributed-Git-Contributing-to-a-Project.

In addition, here are a few examples for a summary line when committing to uutils:

  • commit for a single utility
nohup: cleanup and refactor
  • commit for a utility’s tests
tests/rm: test new feature

Beyond changes to an individual utility or its tests, other summary lines for non-utility modules include:

README: add help
uucore: add new modules
uutils: add new utility
gitignore: add temporary files

PRs

  • Make the titles of PRs descriptive.
    • This means describing the problem you solve. For example, do not write Fix #1234, but ls: fix version sort order.
    • You can prefix the title with the utility the PR concerns.
  • Keep PRs small and self-contained. A set of small PRs is much more likely to get merged quickly than one large PR.
  • Make sure the CI passes (up to intermittently failing tests).
  • You know your code best, that’s why it’s best if you can solve merge conflicts on your branch yourself.
    • It’s up to you whether you want to use git merge main or git rebase main.
    • Feel free to ask for help with merge conflicts.
  • You do not need to ping maintainers to request a review, but it’s fine to do so if you don’t get a response within a few days.

Platforms

We take pride in supporting many operating systems and architectures. Any code you contribute must at least compile without warnings for all platforms in the CI. However, you can use #[cfg(...)] attributes to create platform dependent features.

Licensing

uutils is distributed under the terms of the MIT License; see the LICENSE file for details. This is a permissive license, which allows the software to be used with few restrictions.

Copyrights in the uutils project are retained by their contributors, and no copyright assignment is required to contribute.

If you wish to add or change dependencies as part of a contribution to the project, a tool like cargo-license can be used to show their license details. The following types of license are acceptable:

  • MIT License
  • Dual- or tri-license with an MIT License option (“Apache-2.0 or MIT” is a popular combination)
  • “MIT equivalent” license (2-clause BSD, 3-clause BSD, ISC)
  • License less restrictive than the MIT License (CC0 1.0 Universal)
  • Apache License version 2.0

Licenses we will not use:

  • An ambiguous license, or no license
  • Strongly reciprocal licenses (GNU GPL, GNU LGPL)

If you wish to add a reference but it doesn’t meet these requirements, please raise an issue to describe the dependency.

GNU test coverage

TODO

Extensions

TODO

Release notes

Notes for every published findutils release, newest first. They mirror the GitHub releases.

VersionDateNotes
0.10.02026-08-03Release notes
0.9.12026-06-22Release notes
0.9.02026-06-08Release notes
0.8.02025-04-06Release notes
0.7.02024-09-08Release notes
0.6.02024-06-29Release notes
0.5.02024-04-03Release notes
0.4.22023-07-23Release notes
0.4.12023-07-12Release notes
0.4.02023-04-02Release notes
0.3.02022-01-26Release notes
0.1.02021-03-15Release notes

The 0.1.0 and 0.3.0 tags predate the project’s GitHub releases; their notes were reconstructed from the git history. There is no 0.2.0 tag or release — the version was bumped to 0.2.0 between 0.1.0 and 0.3.0 without one being cut.

📦 Findutils 0.10.0 Release

Findutils 0.10.0 is a GNU-compatibility and robustness release. It sharpens several find behaviors that silently differed from GNU (-printf %T+ formatting, -newerXY predicate validation, --files0-from input validation), fixes an xargs bug where the default command line size could make execvp() fail with E2BIG, improves xargs length accounting on Windows, and continues the campaign of turning panics on malformed input into proper error messages.

This release also folds in the 0.9.2 changes: 0.9.2 was prepared in-tree but no release was cut from it, so everything below covers the full 0.9.1 → 0.10.0 range.

Five people made their first contribution to findutils in this cycle: @SAY-5, @lhecker, @l46983284-cpu, @wtcpython and @aki-kong.

We encourage you to support our project by sponsoring us on GitHub. Your sponsorship helps us maintain and enhance our infrastructure, such as GitHub Actions. Sponsor us at https://github.com/sponsors/uutils.

GNU Test Suite Compatibility

Compatibility is tracked per individual test (PASS/FAIL/SKIP by test name). 0.10.0 stands at:

Resultfind (GNU suite)bfs suite
Pass417267
Fail7741
Skip16
Total495314

Compared to 0.9.1, one more GNU test passes (417 vs 416). The bfs suite gained a test upstream (314 vs 313) which findutils does not pass yet, so the pass count is unchanged.

For more details, visit https://github.com/uutils/findutils-tracking/.

Highlights

GNU compatibility fixes

  • find -printf: print a fixed-width fraction for %T+ — chrono’s %.f drops the fraction (and the leading dot) when the sub-second part is zero, while GNU always prints a dot followed by ten fractional digits, by @sylvestre in https://github.com/uutils/findutils/pull/792
  • find: reject invalid -newerXY predicates like GNU — the parser used an unanchored regex, so tokens such as -neweraBcmty were accepted as a truncated -neweraB, by @l46983284-cpu in https://github.com/uutils/findutils/pull/784
  • find: reject invalid UTF-8 in --files0-from by @wtcpython in https://github.com/uutils/findutils/pull/798
  • xargs: cap the default command line size at 128 KiB — sizing command lines up to ARG_MAX made execvp() fail with E2BIG, since the kernel also charges the argv/envp pointer arrays against the limit. An explicit -s may still raise the limit, as with GNU. By @sylvestre in https://github.com/uutils/findutils/pull/791
  • xargs: account for quoting on Windows when computing length limits by @lhecker in https://github.com/uutils/findutils/pull/788

Robustness — errors instead of panics

  • find: report an unparsable -newerXt year instead of panicking by @leeewee in https://github.com/uutils/findutils/pull/762
  • locate: report write errors instead of panicking by @SAY-5 in https://github.com/uutils/findutils/pull/785
  • locate: ignore an unrepresentable --max-database-age instead of panicking by @leeewee in https://github.com/uutils/findutils/pull/768
  • find: skip broken pipe errors in wasm executions by @aki-kong in https://github.com/uutils/findutils/pull/802

Error messages

  • find: avoid the duplicated find: find: prefix in two error messages by @cakebaker in https://github.com/uutils/findutils/pull/774

Project & CI

  • clippy: fix warnings (byte_char_slices, useless_borrows_in_formatting, question_mark, manual_assert_eq) by @cakebaker in https://github.com/uutils/findutils/pull/755
  • Release 0.9.2 by @sylvestre in https://github.com/uutils/findutils/pull/793
  • Release 0.10.0 by @sylvestre in https://github.com/uutils/findutils/pull/804

Dependencies

Dependency and GitHub Action bumps via Dependabot and manual refreshes by @cakebaker: anyhow (1.0.102 → 1.0.103, #751), crossbeam-epoch (0.9.18 → 0.9.20, #754), clap (4.6.1 → 4.6.4, #763/#787/#790), regex (1.12.4 → 1.13.1, #765), ctor (1.0.7 → 1.0.12, #752/#764/#789/#796/#800), thiserror (2.0.18 → 2.0.19, #786), and CodSpeedHQ/action (4 → 5.0.1, #799/#803).

New Contributors

  • @SAY-5 made their first contribution in https://github.com/uutils/findutils/pull/785
  • @lhecker made their first contribution in https://github.com/uutils/findutils/pull/788
  • @l46983284-cpu made their first contribution in https://github.com/uutils/findutils/pull/784
  • @wtcpython made their first contribution in https://github.com/uutils/findutils/pull/798
  • @aki-kong made their first contribution in https://github.com/uutils/findutils/pull/802

Full Changelog: https://github.com/uutils/findutils/compare/0.9.1…0.10.0

Install findutils 0.10.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/uutils/findutils/releases/download/0.10.0/findutils-installer.sh | sh

Download findutils 0.10.0

📦 Findutils 0.9.1 Release

Findutils 0.9.1 is a robustness and portability release. It follows up quickly on the 0.9.0 milestone (which introduced locate/updatedb) by hardening the existing utilities against a series of panics on malformed or unusual input, adding WebAssembly (wasm32-wasip1) build support, shipping statically linked musl binaries for Linux, and reworking how we track GNU/bfs test-suite compatibility in CI.

This release saw the first contribution from @leeewee, who landed most of the panic fixes below.

We encourage you to support our project by sponsoring us on GitHub. Your sponsorship helps us maintain and enhance our infrastructure, such as GitHub Actions. Sponsor us at https://github.com/sponsors/uutils.

GNU Test Suite Compatibility

Starting with this release, compatibility is tracked per individual test (PASS/FAIL/SKIP by test name) rather than by an aggregate count — see “Per-test compatibility tracking” below. Under the new per-test accounting, 0.9.1 stands at:

Resultfind (GNU suite)bfs suite
Pass416267
Fail7840
Skip16
Total495313

0.9.1 is primarily a robustness/infrastructure release, so find/xargs matching semantics are essentially unchanged from 0.9.0; the panic fixes harden edge cases (malformed brackets, multibyte escapes, unmapped UIDs, short databases) rather than altering option behavior.

For more details, visit https://github.com/uutils/findutils-tracking/.

Highlights

Robustness — no more panics on malformed input

  • find -ls: don’t panic on an unmapped owner UID/GID by @leeewee in https://github.com/uutils/findutils/pull/721
  • find -name: don’t panic on a malformed POSIX bracket class by @leeewee in https://github.com/uutils/findutils/pull/722
  • find -printf: don’t panic on a multibyte char after an octal escape by @leeewee in https://github.com/uutils/findutils/pull/723
  • find -printf: correctly test an octal escape before a multibyte char by @leeewee in https://github.com/uutils/findutils/pull/727
  • find -printf: reject an over-large field width instead of panicking by @leeewee in https://github.com/uutils/findutils/pull/734
  • xargs: do not panic on empty input in replace (-I) mode by @leeewee in https://github.com/uutils/findutils/pull/736
  • locate: don’t panic on a too-short --database file by @leeewee in https://github.com/uutils/findutils/pull/718

Portability: WebAssembly and static musl binaries

  • Support compiling for non-Unix targets such as wasm, and build + lint the wasm32-wasip1 target in CI by @sylvestre in https://github.com/uutils/findutils/pull/725
  • Build statically linked musl binaries for x86_64 and aarch64 by @sylvestre in https://github.com/uutils/findutils/pull/741

xargs

  • Clarify the -x and -t help text by @jmr in https://github.com/uutils/findutils/pull/708

Project, CI & release

  • Per-test GNU/bfs comparison and PR comment, modeled on the uutils sed/grep GnuTests workflow by @sylvestre in https://github.com/uutils/findutils/pull/726
  • Define the [profile.dist] used by cargo-dist by @sylvestre in https://github.com/uutils/findutils/pull/739
  • Inherit lto = "thin" in Cargo.toml by @oech3 in https://github.com/uutils/findutils/pull/740
  • Add 2 missing binaries to latest-commit by @oech3 in https://github.com/uutils/findutils/pull/743
  • CONTRIBUTING.md: replace coreutils references with findutils by @oech3 in https://github.com/uutils/findutils/pull/738

Dependencies

Dependency and GitHub Action bumps via Dependabot and a manual crate refresh (@xtqqczze, #729): itertools (0.14.0 → 0.15.0, #742), regex (1.12.3 → 1.12.4, #728), cargo-dist (0.28.0 → 0.32.0, #748), actions/checkout (4 → 6 → 7, #711/#744), codecov/codecov-action (6 → 7, #712), and moonrepo/setup-rust (0 → 1, #709).

New Contributors

  • @leeewee made their first contribution in https://github.com/uutils/findutils/pull/718

Full Changelog: https://github.com/uutils/findutils/compare/0.9.0…0.9.1

Install findutils 0.9.1

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/uutils/findutils/releases/download/0.9.1/findutils-installer.sh | sh

Download findutils 0.9.1

📦 Findutils 0.9.0 Release:

We are thrilled to announce the release of Findutils 0.9.0! This release is a major milestone: it introduces the first implementations of locate and updatedb, bringing the project much closer to a complete drop-in replacement for the GNU findutils suite. Alongside these new utilities, this version adds the interactive -ok/-okdir actions, new xargs options (-E, -l, and hyphenated -I/-E values), chained -type arguments, and many correctness fixes. We’ve also hardened the project with a security audit workflow, a SECURITY.md, and CodSpeed performance benchmarks for all four utilities.

This release also lands as the broader uutils effort reaches a new level of adoption: Microsoft now ships uutils-based tooling (microsoft/coreutils), a strong validation of the project’s drop-in, cross-platform approach.

This release saw contributions from 11 new developers.

We encourage you to support our project by sponsoring us on GitHub. Your sponsorship helps us maintain and enhance our infrastructure, such as GitHub Actions. Sponsor us at https://github.com/sponsors/uutils.

GNU Test Suite Compatibility

Here’s how version 0.9.0 compares to the previous release:

ResultPrevious (0.8.0)Current (0.9.0)Change% Total Previous% Total Current% Change
Pass503518+1580.87%83.28%+2.41%
Skip1100.16%0.16%0.00%
Fail117103-1418.81%16.56%-2.25%
Error10-10.16%0.00%-0.16%
Total6226220
GNU testsuite evolution

For more details, visit https://github.com/uutils/findutils-tracking/.

Highlights

New utilities: locate and updatedb

  • Initial implementation of locate and updatedb by @Qelxiros in https://github.com/uutils/findutils/pull/536
  • locate/updatedb made to work on Windows by @sylvestre in https://github.com/uutils/findutils/pull/704
  • updatedb: improve perf and error messages, and a clear error when the output database can’t be created by @sylvestre in https://github.com/uutils/findutils/pull/713

find

  • Implement -ok and -okdir by @jmr in https://github.com/uutils/findutils/pull/650
  • Match the GNU prompt format for -ok/-okdir by @sylvestre in https://github.com/uutils/findutils/pull/699
  • Implement chained -type matcher arguments by @Crypto-Darth in https://github.com/uutils/findutils/pull/527
  • Replace the {} placeholder in the -exec utility name by @mvanhorn in https://github.com/uutils/findutils/pull/647
  • Fix -fstype with stacked mounts by @tavianator in https://github.com/uutils/findutils/pull/532
  • Avoid a redundant stat per -fstype evaluation by @sylvestre
  • Avoid a panic on -fprintf with missing arguments by @sylvestre in https://github.com/uutils/findutils/pull/698
  • Handle write failures when printing --help/--version by @Xylphy in https://github.com/uutils/findutils/pull/656
  • Update the --help text by @jmr in https://github.com/uutils/findutils/pull/707
  • Use div_ceil for proper blocks computation by @KartikDua1504 in https://github.com/uutils/findutils/pull/529

xargs

  • Add support for -E by @brian-pane in https://github.com/uutils/findutils/pull/593
  • Add support for -l by @brian-pane in https://github.com/uutils/findutils/pull/601
  • Ignore -E/-e when a delimiter is specified by @brian-pane in https://github.com/uutils/findutils/pull/603
  • Accept hyphenated -I and -E values by @kevinburke in https://github.com/uutils/findutils/pull/668

Project, CI & quality

  • Add SECURITY.md by @xtqqczze in https://github.com/uutils/findutils/pull/663
  • Add a security audit workflow by @xtqqczze in https://github.com/uutils/findutils/pull/660
  • Add CodSpeed benchmarks for find and xargs by @sylvestre in https://github.com/uutils/findutils/pull/703
  • Add CodSpeed benchmarks for updatedb and locate by @sylvestre in https://github.com/uutils/findutils/pull/705
  • Port the tests to uutests by @jmr in https://github.com/uutils/findutils/pull/645
  • Enable the clippy all/cargo/pedantic lint groups, mirroring uutils/coreutils by @sylvestre in https://github.com/uutils/findutils/pull/715
  • Fix warnings from the filter_next lint by @cakebaker in https://github.com/uutils/findutils/pull/604
  • Publish the release as a draft first, and publish the binary from main by @sylvestre / @oech3 in https://github.com/uutils/findutils/pull/530, https://github.com/uutils/findutils/pull/618
  • Add a release-small profile and rename the dist profile by @oech3 in https://github.com/uutils/findutils/pull/586
  • Faster CI: use preinstalled Rust & CARGO_INCREMENTAL=0 by @oech3 in https://github.com/uutils/findutils/pull/619

Dependencies

Numerous dependency bumps via Dependabot, including clap (4.5.35 → 4.6.1), regex (1.11.1 → 1.12.3), nix (0.29.0 → 0.31.3), chrono (0.4.40 → 0.4.45), tempfile (3.19.1 → 3.27.0), ctor (0.6.3 → 1.0.7), uucore (0.0.30 → 0.9.0), uutests (0.7.0 → 0.9.0), onig (6.4.0 → 6.5.3), argmax (0.3.1 → 0.4.0), filetime, serial_test, assert_cmd, rstest, terminal_size, and several GitHub Actions. Yanked futures-util, scc, and getrandom 0.3.1 were removed.

New Contributors

  • @KartikDua1504 made their first contribution in https://github.com/uutils/findutils/pull/529
  • @tdulcet made their first contribution in https://github.com/uutils/findutils/pull/545
  • @Qelxiros made their first contribution in https://github.com/uutils/findutils/pull/547
  • @oech3 made their first contribution in https://github.com/uutils/findutils/pull/586
  • @brian-pane made their first contribution in https://github.com/uutils/findutils/pull/593
  • @jmr made their first contribution in https://github.com/uutils/findutils/pull/645
  • @xtqqczze made their first contribution in https://github.com/uutils/findutils/pull/659
  • @kevinburke made their first contribution in https://github.com/uutils/findutils/pull/668
  • @vip892766gma made their first contribution in https://github.com/uutils/findutils/pull/687
  • @mvanhorn made their first contribution in https://github.com/uutils/findutils/pull/647
  • @Xylphy made their first contribution in https://github.com/uutils/findutils/pull/656

Full Changelog: https://github.com/uutils/findutils/compare/0.8.0…0.9.0

Install findutils 0.9.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/uutils/findutils/releases/download/0.9.0/findutils-installer.sh | sh

Download findutils 0.9.0

📦 Findutils 0.8.0 Release:

We are thrilled to announce the release of Findutils 0.8.0! This version brings numerous enhancements, bug fixes, and new features, further improving the toolset’s robustness and functionality. This release introduces key improvements including new formatting options (-fprint0, -fprintf), better file handling with -files0-from, and more efficient command execution with exec[dir] +. We’ve also fixed important path handling bugs and improved regex behavior.

This release saw contributions from 5 new developers.

We encourage you to support our project by sponsoring us on GitHub. Your sponsorship helps us maintain and enhance our infrastructure, such as GitHub Actions. Sponsor us at https://github.com/sponsors/uutils.

GNU Test Suite Compatibility

Here’s how version 0.8.0 compares to the previous release:

ResultPrevious (0.7.0)Current (0.8.0)Change% Total Previous% Total Current% Change
Pass477503+2672.38%80.87%+8.49%
Skip1100.15%0.16%+0.01%
Fail179117-6227.16%18.81%-8.35%
Error21-10.30%0.16%-0.14%
Total659622-37
GNU testsuite evolution

For more details, visit https://github.com/uutils/findutils-tracking/.

What’s Changed

  • Implement -fprint0 by @hanbings in https://github.com/uutils/findutils/pull/443
  • Implement -fprintf by @hanbings in https://github.com/uutils/findutils/pull/444
  • manage the special case ’find %A+ by @sylvestre in https://github.com/uutils/findutils/pull/454
  • Print help/version without error prefix by @andrewliebenow in https://github.com/uutils/findutils/pull/455
  • find/glob: Don’t use $. as a non-matching regex by @tavianator in https://github.com/uutils/findutils/pull/457
  • find/time: calculate midnight with local time zone by @NaviHX in https://github.com/uutils/findutils/pull/467
  • find: fix new clippy warnings by @cakebaker in https://github.com/uutils/findutils/pull/475
  • ci: Fix issues related to downloading builds in ci. by @hanbings in https://github.com/uutils/findutils/pull/487
  • ci: use -Cinstrument-coverage instead of -Zprofile by @cakebaker in https://github.com/uutils/findutils/pull/470
  • find: fix “unused import” warning on Windows by @cakebaker in https://github.com/uutils/findutils/pull/498
  • -name / should match /// by @Every2 in https://github.com/uutils/findutils/pull/508
  • Fix incorrect triple slashes behavior by @Every2 in https://github.com/uutils/findutils/pull/512
  • find: Use matcher_io.set_exit_code() by @tavianator in https://github.com/uutils/findutils/pull/516
  • clippy: add the same rules as coreutils by @sylvestre in https://github.com/uutils/findutils/pull/510
  • clippy: run cargo clippy and cargo fmt. by @hanbings in https://github.com/uutils/findutils/pull/517
  • Implement : -files0-from (#378) by @Crypto-Darth in https://github.com/uutils/findutils/pull/509
  • find: Implement exec[dir] + by @milkory in https://github.com/uutils/findutils/pull/515
  • tests: Make -exec {} + tests deterministic by @tavianator in https://github.com/uutils/findutils/pull/520
  • clippy: fix warnings from Rust 1.86 by @cakebaker in https://github.com/uutils/findutils/pull/522
  • find: User/group ID fixes by @tavianator in https://github.com/uutils/findutils/pull/521
  • ci: adjust to code cov v5 by @sylvestre in https://github.com/uutils/findutils/pull/525
  • find: fix typo in test (slashs -> slashes) by @cakebaker in https://github.com/uutils/findutils/pull/526
  • prepare version 0.8.0 by @sylvestre in https://github.com/uutils/findutils/pull/528
  • find: Allow comparable values with signs by @tavianator in https://github.com/uutils/findutils/pull/524

Dependencies

  • build(deps): bump pretty_assertions from 1.4.0 to 1.4.1 by @dependabot in https://github.com/uutils/findutils/pull/453
  • build(deps): bump once_cell from 1.19.0 to 1.20.0 by @dependabot in https://github.com/uutils/findutils/pull/452
  • build(deps): bump clap from 4.5.17 to 4.5.18 by @dependabot in https://github.com/uutils/findutils/pull/456
  • build(deps): bump regex from 1.10.6 to 1.11.0 by @dependabot in https://github.com/uutils/findutils/pull/460
  • build(deps): bump tempfile from 3.12.0 to 3.13.0 by @dependabot in https://github.com/uutils/findutils/pull/458
  • build(deps): bump once_cell from 1.20.0 to 1.20.2 by @dependabot in https://github.com/uutils/findutils/pull/464
  • build(deps): bump clap from 4.5.18 to 4.5.20 by @dependabot in https://github.com/uutils/findutils/pull/465
  • build(deps): bump regex from 1.11.0 to 1.11.1 by @dependabot in https://github.com/uutils/findutils/pull/468
  • build(deps): bump serial_test from 3.1.1 to 3.2.0 by @dependabot in https://github.com/uutils/findutils/pull/471
  • build(deps): bump clap from 4.5.20 to 4.5.31 by @dependabot in https://github.com/uutils/findutils/pull/496
  • build(deps): bump once_cell from 1.20.2 to 1.20.3 by @dependabot in https://github.com/uutils/findutils/pull/491
  • build(deps): bump predicates from 3.1.2 to 3.1.3 by @dependabot in https://github.com/uutils/findutils/pull/485
  • build(deps): bump tempfile from 3.13.0 to 3.17.1 by @dependabot in https://github.com/uutils/findutils/pull/495
  • build(deps): bump once_cell from 1.20.3 to 1.21.0 by @dependabot in https://github.com/uutils/findutils/pull/502
  • build(deps): bump tempfile from 3.18.0 to 3.19.0 by @dependabot in https://github.com/uutils/findutils/pull/505
  • build(deps): bump clap from 4.5.32 to 4.5.34 by @dependabot in https://github.com/uutils/findutils/pull/513
  • Update to uucore 0.0.29 by @sylvestre in https://github.com/uutils/findutils/pull/486
  • Bump uucore from 0.0.29 to 0.0.30 by @cakebaker in https://github.com/uutils/findutils/pull/514
  • build(deps): bump tempfile from 3.17.1 to 3.18.0 by @dependabot in https://github.com/uutils/findutils/pull/500
  • build(deps): bump clap from 4.5.31 to 4.5.32 by @dependabot in https://github.com/uutils/findutils/pull/501
  • build(deps): bump tempfile from 3.19.0 to 3.19.1 by @dependabot in https://github.com/uutils/findutils/pull/507
  • Bump dependencies to remove two windows-sys versions by @cakebaker in https://github.com/uutils/findutils/pull/499
  • Remove unused once_cell dependency by @cakebaker in https://github.com/uutils/findutils/pull/503
  • build(deps): bump chrono from 0.4.38 to 0.4.40 by @dependabot in https://github.com/uutils/findutils/pull/497
  • build(deps): bump clap from 4.5.34 to 4.5.35 by @dependabot in https://github.com/uutils/findutils/pull/519
  • ci: update dist from 0.12 to 0.28 by @cakebaker in https://github.com/uutils/findutils/pull/506

New Contributors

  • @andrewliebenow made their first contribution in https://github.com/uutils/findutils/pull/455
  • @NaviHX made their first contribution in https://github.com/uutils/findutils/pull/467
  • @Every2 made their first contribution in https://github.com/uutils/findutils/pull/508
  • @Crypto-Darth made their first contribution in https://github.com/uutils/findutils/pull/509
  • @milkory made their first contribution in https://github.com/uutils/findutils/pull/515

Full Changelog: https://github.com/uutils/findutils/compare/0.7.0…0.8.0

Install findutils 0.8.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/uutils/findutils/releases/download/0.8.0/findutils-installer.sh | sh

Download findutils 0.8.0

📦 Findutils 0.7.0 Release:

We are thrilled to announce the release of Findutils 0.7.0! This version brings numerous enhancements, bug fixes, and new features, further improving the toolset’s robustness and functionality. In this release, we have 86 new BFS and GNU tests passing! Congratulations to @hanbings for pushing so many changes as part of the Google summer of code 2024.

This release saw contributions from 5 developers, including 1 newcomer.

We encourage you to support our project by sponsoring us on GitHub. Your sponsorship helps us maintain and enhance our infrastructure, such as GitHub Actions. Sponsor us at https://github.com/sponsors/uutils.

BFS Test Suite Compatibility

Here’s how version 0.7.0 compares to the previous release:

ResultPreviousCurrentChange% Total Previous% Total Current% Change
Pass190244+5465.97%76.97%+11%
Skip16+50.35%1.89%+1.54%
Fail9767-3033.68%21.14%-12.54%
Total288317+29
BFS testsuite evolution

For more details, visit https://github.com/uutils/findutils-tracking/.

GNU Test Suite Compatibility

Here’s how version 0.7.0 compares to the previous release:

ResultPreviousCurrentChange% Total Previous% Total Current% Change
Pass445477+3263.38%72.38%+9%
Skip1100.14%0.15%+0.01%
Fail254179-7536.18%27.16%-9.02%
Error2200.28%0.30%+0.02%
Total702659-43
GNU testsuite evolution

For more details, visit https://github.com/uutils/findutils-tracking/.

Download findutils 0.7.0

What’s Changed

Find

  • Implement -noleaf by @hanbings in https://github.com/uutils/findutils/pull/414
  • Implement simple caching for -fstype by @nerdroychan in https://github.com/uutils/findutils/pull/419
  • Implement -daystart by @hanbings in https://github.com/uutils/findutils/pull/413
  • find: ctime is “changed” time, not “created” time by @tavianator in https://github.com/uutils/findutils/pull/416
  • find: -daystart returns true by @tavianator in https://github.com/uutils/findutils/pull/428
  • Implement -fprint by @hanbings in https://github.com/uutils/findutils/pull/421
  • Wrap walkdir::DirEntry in a new type by @tavianator in https://github.com/uutils/findutils/pull/436
  • Implement -ls and -fls by @hanbings in https://github.com/uutils/findutils/pull/435

CI

  • ci: Update bfs to 4.0 by @tavianator in https://github.com/uutils/findutils/pull/446

Code quality

  • options return true by @tavianator in https://github.com/uutils/findutils/pull/417
  • find: fix needless borrow clippy warning by @cakebaker in https://github.com/uutils/findutils/pull/423
  • Remove unnecessary lifetime parameter from Dependencies by @tavianator in https://github.com/uutils/findutils/pull/427
  • find: use array instead of closure by @cakebaker in https://github.com/uutils/findutils/pull/450
  • Clean up unused generated during Windows platform build process. by @hanbings in https://github.com/uutils/findutils/pull/448

Dependencies

  • build(deps): bump clap from 4.5.7 to 4.5.8 by @dependabot in https://github.com/uutils/findutils/pull/410
  • build(deps): bump clap from 4.5.8 to 4.5.9 by @dependabot in https://github.com/uutils/findutils/pull/415
  • build(deps): bump clap from 4.5.9 to 4.5.10 by @dependabot in https://github.com/uutils/findutils/pull/422
  • build(deps): bump clap from 4.5.10 to 4.5.13 by @dependabot in https://github.com/uutils/findutils/pull/429
  • build(deps): bump regex from 1.10.5 to 1.10.6 by @dependabot in https://github.com/uutils/findutils/pull/432
  • build(deps): bump tempfile from 3.10.1 to 3.11.0 by @dependabot in https://github.com/uutils/findutils/pull/433
  • build(deps): bump assert_cmd from 2.0.14 to 2.0.15 by @dependabot in https://github.com/uutils/findutils/pull/426
  • build(deps): bump predicates from 3.1.0 to 3.1.2 by @dependabot in https://github.com/uutils/findutils/pull/424
  • build(deps): bump tempfile from 3.11.0 to 3.12.0 by @dependabot in https://github.com/uutils/findutils/pull/434
  • build(deps): bump clap from 4.5.13 to 4.5.14 by @dependabot in https://github.com/uutils/findutils/pull/438
  • build(deps): bump assert_cmd from 2.0.15 to 2.0.16 by @dependabot in https://github.com/uutils/findutils/pull/437
  • build(deps): bump clap from 4.5.14 to 4.5.15 by @dependabot in https://github.com/uutils/findutils/pull/441
  • build(deps): bump filetime from 0.2.23 to 0.2.24 by @dependabot in https://github.com/uutils/findutils/pull/442
  • build(deps): bump clap from 4.5.15 to 4.5.16 by @dependabot in https://github.com/uutils/findutils/pull/445
  • build(deps): bump filetime from 0.2.24 to 0.2.25 by @dependabot in https://github.com/uutils/findutils/pull/447
  • build(deps): bump clap from 4.5.16 to 4.5.17 by @dependabot in https://github.com/uutils/findutils/pull/449

New Contributors

  • @nerdroychan made their first contribution in https://github.com/uutils/findutils/pull/419

Full Changelog: https://github.com/uutils/findutils/compare/0.6.0…0.7.0

📦 Findutils 0.6.0 Release:

We are thrilled to announce the release of Findutils 0.6.0! This version brings numerous enhancements, bug fixes, and new features, further improving the toolset’s robustness and functionality.

This release saw contributions from 8 developers, including 5 newcomers. Including @hanbings as part of the Google summer of code 2024.

We encourage you to support our project by sponsoring us on GitHub. Your sponsorship helps us maintain and enhance our infrastructure, such as GitHub Actions. Sponsor us at https://github.com/sponsors/uutils.

BFS Test Suite Compatibility

Here’s how version 0.6.0 compares to the previous release:

ResultPreviousCurrentChange% Total Previous% Total Current% Change
Pass176190+1461.11%65.97%+4.86%
Skip1100.35%0.35%0.00%
Fail11197-1438.54%33.68%-4.86%
BFS testsuite evolution

For more details, visit https://github.com/uutils/findutils-tracking/.

GNU Test Suite Compatibility

Here’s how version 0.6.0 compares to the previous release:

ResultPreviousCurrentChange% Total Previous% Total Current% Change
Pass429445+1659.75%63.38%+3.63%
Skip1100.14%0.14%0.00%
Fail286254-3239.83%36.18%-3.65%
Error2200.28%0.28%0.00%
GNU testsuite evolution

For more details, visit https://github.com/uutils/findutils-tracking/.

Download findutils 0.6.0

What’s Changed

Find

  • Implement -uid and -gid by @hanbings in https://github.com/uutils/findutils/pull/405
  • Implement -samefile by @hanbings in https://github.com/uutils/findutils/pull/389
  • Implement -fstype by @hanbings in https://github.com/uutils/findutils/pull/408
  • Cache FileInformation for the target by @tavianator in https://github.com/uutils/findutils/pull/409
  • remove unused import on Windows by @cakebaker in https://github.com/uutils/findutils/pull/395
  • Fix -newerXY test code for Windows platform. by @hanbings in https://github.com/uutils/findutils/pull/394
  • Implement -amin -cmin -mmin age ranges. by @hanbings in https://github.com/uutils/findutils/pull/355
  • Implement -[no]user and -[no]group predicates. by @hanbings in https://github.com/uutils/findutils/pull/368
  • Implement -newerXY by @hanbings in https://github.com/uutils/findutils/pull/342
  • Implement -anewer and -cnewer. by @hanbings in https://github.com/uutils/findutils/pull/386
  • fix “item x imported redundantly” warnings by @cakebaker in https://github.com/uutils/findutils/pull/326
  • make InodeMatcher & LinksMatcher unix-only by @cakebaker in https://github.com/uutils/findutils/pull/393
  • fix usage of legacy numeric methods by @cakebaker in https://github.com/uutils/findutils/pull/403
  • Fix panic when piped into head by @hanbings in https://github.com/uutils/findutils/pull/351
  • Changed exit code when an error is encountered in process_dir(). by @hanbings in https://github.com/uutils/findutils/pull/352
  • Fix unexpectedly accepted empty expression. by @hanbings in https://github.com/uutils/findutils/pull/353
  • Fix convert_arg_to_comparable_value() function parsing unexpected characters. by @hanbings in https://github.com/uutils/findutils/pull/361
  • replace zip with nested loops in tests by @cakebaker in https://github.com/uutils/findutils/pull/385

xargs

  • remove unnecessary else blocks by @cakebaker in https://github.com/uutils/findutils/pull/318
  • rename --size to --max-chars by @cakebaker in https://github.com/uutils/findutils/pull/321
  • do not merge extra args before replacing by @YDX-2147483647 in https://github.com/uutils/findutils/pull/363
  • add –max-lines by @cakebaker in https://github.com/uutils/findutils/pull/343
  • Implement replace / -I (Closes: #310) by @sylvestre in https://github.com/uutils/findutils/pull/323

Build

  • Cargo.toml: set “default-features = false” for onig by @cakebaker in https://github.com/uutils/findutils/pull/313
  • Cargo.toml: use 2021 edition by @cakebaker in https://github.com/uutils/findutils/pull/314

Code quality

  • Fix clippy warning on ‘format!’ strings by @jellehelsen in https://github.com/uutils/findutils/pull/272
  • Fix deprecation warnings from chrono in test by @cakebaker in https://github.com/uutils/findutils/pull/315
  • tests: remove “extern crate x” by @cakebaker in https://github.com/uutils/findutils/pull/341
  • xargs: use #[allow(dead_code)] for enum by @cakebaker in https://github.com/uutils/findutils/pull/396
  • Run clippy pedantic fixes on the recent changes by @sylvestre in https://github.com/uutils/findutils/pull/349
  • Run clippy pedantic fixes by @sylvestre in https://github.com/uutils/findutils/pull/348
  • find: fix two clippy warnings by @cakebaker in https://github.com/uutils/findutils/pull/335
  • clippy: Fix clippy warning. by @hanbings in https://github.com/uutils/findutils/pull/357

Documentation

  • initial oranda setup by @tertsdiepraam in https://github.com/uutils/findutils/pull/274
  • website: fix path_prefix in oranda by @tertsdiepraam in https://github.com/uutils/findutils/pull/275
  • website: fix changelog config by @tertsdiepraam in https://github.com/uutils/findutils/pull/278
  • README: add badges + bfs info by @sylvestre in https://github.com/uutils/findutils/pull/337
  • docs: initial version of mdbook by @tertsdiepraam in https://github.com/uutils/findutils/pull/347

CI

  • Provide GNU test comparison comments for PRs in Github Actions. by @hanbings in https://github.com/uutils/findutils/pull/400
  • ci: Update bfs to 3.0.3 by @tavianator in https://github.com/uutils/findutils/pull/290
  • ci: Update bfs to 3.1.3 by @tavianator in https://github.com/uutils/findutils/pull/334
  • Fix CI code for comment.yml by @hanbings in https://github.com/uutils/findutils/pull/404
  • Comments are only sent when GNU/BFS test compatibility changes. by @hanbings in https://github.com/uutils/findutils/pull/407
  • ci: run cargo test instead of cargo check in “cargo test” jobs by @cakebaker in https://github.com/uutils/findutils/pull/392
  • ci: name upload steps by @cakebaker in https://github.com/uutils/findutils/pull/346
  • ci: use --all-targets when running clippy by @cakebaker in https://github.com/uutils/findutils/pull/359
  • use cargo-dist + prepare 0.5.0 by @sylvestre in https://github.com/uutils/findutils/pull/350
  • cargo-dist: generate more targets by @sylvestre in https://github.com/uutils/findutils/pull/388
  • ci: update codecov-action to v4 & use token by @cakebaker in https://github.com/uutils/findutils/pull/320

Dependencies

  • Cargo.toml: specify complete chrono version by @cakebaker in https://github.com/uutils/findutils/pull/339
  • Bump wasm-bindgen from 0.2.82 to 0.2.91 by @cakebaker in https://github.com/uutils/findutils/pull/317
  • Bump parking_lot_core from 0.9.3 to 0.9.9 by @cakebaker in https://github.com/uutils/findutils/pull/316
  • Bump clap from 4.4.6 to 4.4.18 by @cakebaker in https://github.com/uutils/findutils/pull/319
  • Bump nix from 0.27 to 0.28 & enable “fs” feature by @cakebaker in https://github.com/uutils/findutils/pull/327
  • build(deps): bump tempfile from 3.6.0 to 3.7.0 by @dependabot in https://github.com/uutils/findutils/pull/269
  • build(deps): bump assert_cmd from 2.0.11 to 2.0.12 by @dependabot in https://github.com/uutils/findutils/pull/268
  • build(deps): bump actions/checkout from 3 to 4 by @dependabot in https://github.com/uutils/findutils/pull/283
  • build(deps): bump uucore from 0.0.20 to 0.0.21 by @dependabot in https://github.com/uutils/findutils/pull/282
  • build(deps): bump tempfile from 3.7.0 to 3.8.0 by @dependabot in https://github.com/uutils/findutils/pull/276
  • build(deps): bump filetime from 0.2.21 to 0.2.22 by @dependabot in https://github.com/uutils/findutils/pull/271
  • build(deps): bump chrono from 0.4.26 to 0.4.28 by @dependabot in https://github.com/uutils/findutils/pull/281
  • build(deps): bump walkdir from 2.3.3 to 2.4.0 by @dependabot in https://github.com/uutils/findutils/pull/284
  • build(deps): bump chrono from 0.4.28 to 0.4.29 by @dependabot in https://github.com/uutils/findutils/pull/285
  • build(deps): bump chrono from 0.4.29 to 0.4.31 by @dependabot in https://github.com/uutils/findutils/pull/288
  • build(deps): bump uucore from 0.0.21 to 0.0.22 by @dependabot in https://github.com/uutils/findutils/pull/291
  • build(deps): bump predicates from 3.0.3 to 3.0.4 by @dependabot in https://github.com/uutils/findutils/pull/289
  • build(deps): bump nix from 0.26.2 to 0.27.1 by @dependabot in https://github.com/uutils/findutils/pull/279
  • build(deps): bump dawidd6/action-download-artifact from 2 to 3 by @dependabot in https://github.com/uutils/findutils/pull/297
  • build(deps): bump once_cell from 1.18.0 to 1.19.0 by @dependabot in https://github.com/uutils/findutils/pull/296
  • build(deps): bump filetime from 0.2.22 to 0.2.23 by @dependabot in https://github.com/uutils/findutils/pull/295
  • build(deps): bump tempfile from 3.8.0 to 3.8.1 by @dependabot in https://github.com/uutils/findutils/pull/293
  • build(deps): bump uucore from 0.0.22 to 0.0.23 by @dependabot in https://github.com/uutils/findutils/pull/294
  • build(deps): bump actions/upload-artifact from 3 to 4 by @dependabot in https://github.com/uutils/findutils/pull/298
  • build(deps): bump tempfile from 3.8.1 to 3.9.0 by @dependabot in https://github.com/uutils/findutils/pull/299
  • build(deps): bump assert_cmd from 2.0.12 to 2.0.13 by @dependabot in https://github.com/uutils/findutils/pull/301
  • build(deps): bump predicates from 3.0.4 to 3.1.0 by @dependabot in https://github.com/uutils/findutils/pull/302
  • build(deps): bump chrono from 0.4.31 to 0.4.32 by @dependabot in https://github.com/uutils/findutils/pull/304
  • build(deps): bump shlex from 1.1.0 to 1.3.0 by @dependabot in https://github.com/uutils/findutils/pull/303
  • build(deps): bump uucore from 0.0.23 to 0.0.24 by @dependabot in https://github.com/uutils/findutils/pull/305
  • build(deps): bump chrono from 0.4.32 to 0.4.33 by @dependabot in https://github.com/uutils/findutils/pull/306
  • build(deps): bump chrono from 0.4.33 to 0.4.34 by @dependabot in https://github.com/uutils/findutils/pull/311
  • build(deps): bump tempfile from 3.9.0 to 3.10.0 by @dependabot in https://github.com/uutils/findutils/pull/309
  • build(deps): bump serial_test from 2.0.0 to 3.0.0 by @dependabot in https://github.com/uutils/findutils/pull/300
  • build(deps): bump assert_cmd from 2.0.13 to 2.0.14 by @dependabot in https://github.com/uutils/findutils/pull/312
  • build(deps): bump tempfile from 3.10.0 to 3.10.1 by @dependabot in https://github.com/uutils/findutils/pull/328
  • build(deps): bump walkdir from 2.4.0 to 2.5.0 by @dependabot in https://github.com/uutils/findutils/pull/329
  • build(deps): bump chrono from 0.4.34 to 0.4.35 by @dependabot in https://github.com/uutils/findutils/pull/330
  • build(deps): bump clap from 4.4.18 to 4.5.2 by @dependabot in https://github.com/uutils/findutils/pull/332
  • build(deps): bump clap from 4.5.2 to 4.5.3 by @dependabot in https://github.com/uutils/findutils/pull/333
  • build(deps): bump uucore from 0.0.24 to 0.0.25 by @dependabot in https://github.com/uutils/findutils/pull/336
  • build(deps): bump clap from 4.5.3 to 4.5.4 by @dependabot in https://github.com/uutils/findutils/pull/340
  • build(deps): bump chrono from 0.4.35 to 0.4.37 by @dependabot in https://github.com/uutils/findutils/pull/344
  • build(deps): bump KyleMayes/install-llvm-action from 1 to 2 by @dependabot in https://github.com/uutils/findutils/pull/345
  • build(deps): bump chrono from 0.4.37 to 0.4.38 by @dependabot in https://github.com/uutils/findutils/pull/354
  • build(deps): bump serial_test from 3.0.0 to 3.1.0 by @dependabot in https://github.com/uutils/findutils/pull/356
  • build(deps): bump uucore from 0.0.25 to 0.0.26 by @dependabot in https://github.com/uutils/findutils/pull/365
  • build(deps): bump serial_test from 3.1.0 to 3.1.1 by @dependabot in https://github.com/uutils/findutils/pull/364
  • build(deps): bump nix from 0.28.0 to 0.29.0 by @dependabot in https://github.com/uutils/findutils/pull/390
  • build(deps): bump dawidd6/action-download-artifact from 3 to 4 by @dependabot in https://github.com/uutils/findutils/pull/397
  • build(deps): bump dawidd6/action-download-artifact from 4 to 5 by @dependabot in https://github.com/uutils/findutils/pull/398
  • build(deps): bump clap from 4.5.4 to 4.5.6 by @dependabot in https://github.com/uutils/findutils/pull/399
  • build(deps): bump clap from 4.5.6 to 4.5.7 by @dependabot in https://github.com/uutils/findutils/pull/401
  • build(deps): bump dawidd6/action-download-artifact from 5 to 6 by @dependabot in https://github.com/uutils/findutils/pull/402
  • build(deps): bump uucore from 0.0.26 to 0.0.27 by @dependabot in https://github.com/uutils/findutils/pull/406
  • Bump regex from 1.7 to 1.10 by @cakebaker in https://github.com/uutils/findutils/pull/391
  • xargs: upgrade to clap v4.4 by @cakebaker in https://github.com/uutils/findutils/pull/331

New Contributors

  • @tertsdiepraam made their first contribution in https://github.com/uutils/findutils/pull/274
  • @jellehelsen made their first contribution in https://github.com/uutils/findutils/pull/272
  • @cakebaker made their first contribution in https://github.com/uutils/findutils/pull/313
  • @hanbings made their first contribution in https://github.com/uutils/findutils/pull/342
  • @YDX-2147483647 made their first contribution in https://github.com/uutils/findutils/pull/363

Full Changelog: https://github.com/uutils/findutils/compare/0.4.2…0.6.0

📦 Findutils 0.5.0 Release

Download findutils 0.5.0

What’s Changed

New features

  • find: Implement -newerXY by @hanbings in https://github.com/uutils/findutils/pull/342
  • xargs: Implement replace / -I (Closes: #310) by @sylvestre in https://github.com/uutils/findutils/pull/323
  • xargs: add –max-lines by @cakebaker in https://github.com/uutils/findutils/pull/343
  • xargs: rename --size to --max-chars by @cakebaker in https://github.com/uutils/findutils/pull/321

Documentation

  • initial oranda setup by @tertsdiepraam in https://github.com/uutils/findutils/pull/274
  • website: fix path_prefix in oranda by @tertsdiepraam in https://github.com/uutils/findutils/pull/275
  • website: fix changelog config by @tertsdiepraam in https://github.com/uutils/findutils/pull/278
  • docs: initial version of mdbook by @tertsdiepraam in https://github.com/uutils/findutils/pull/347

Code quality

  • Fix deprecation warnings from chrono in test by @cakebaker in https://github.com/uutils/findutils/pull/315
  • xargs: remove unnecessary else blocks by @cakebaker in https://github.com/uutils/findutils/pull/318
  • find: fix “item x imported redundantly” warnings by @cakebaker in https://github.com/uutils/findutils/pull/326
  • find: fix two clippy warnings by @cakebaker in https://github.com/uutils/findutils/pull/335
  • README: add badges + bfs info by @sylvestre in https://github.com/uutils/findutils/pull/337
  • tests: remove “extern crate x” by @cakebaker in https://github.com/uutils/findutils/pull/341
  • Run clippy pedantic fixes by @sylvestre in https://github.com/uutils/findutils/pull/348

CI

  • ci: update codecov-action to v4 & use token by @cakebaker in https://github.com/uutils/findutils/pull/320
  • Fix clippy warning on ‘format!’ strings by @jellehelsen in https://github.com/uutils/findutils/pull/272
  • ci: Update bfs to 3.0.3 by @tavianator in https://github.com/uutils/findutils/pull/290
  • ci: Update bfs to 3.1.3 by @tavianator in https://github.com/uutils/findutils/pull/334
  • Cargo.toml: set “default-features = false” for onig by @cakebaker in https://github.com/uutils/findutils/pull/313
  • Cargo.toml: use 2021 edition by @cakebaker in https://github.com/uutils/findutils/pull/314
  • ci: name upload steps by @cakebaker in https://github.com/uutils/findutils/pull/346

dependencies

  • build(deps): bump tempfile from 3.6.0 to 3.7.0 by @dependabot in https://github.com/uutils/findutils/pull/269
  • build(deps): bump assert_cmd from 2.0.11 to 2.0.12 by @dependabot in https://github.com/uutils/findutils/pull/268
  • build(deps): bump actions/checkout from 3 to 4 by @dependabot in https://github.com/uutils/findutils/pull/283
  • build(deps): bump uucore from 0.0.20 to 0.0.21 by @dependabot in https://github.com/uutils/findutils/pull/282
  • build(deps): bump tempfile from 3.7.0 to 3.8.0 by @dependabot in https://github.com/uutils/findutils/pull/276
  • build(deps): bump filetime from 0.2.21 to 0.2.22 by @dependabot in https://github.com/uutils/findutils/pull/271
  • build(deps): bump chrono from 0.4.26 to 0.4.28 by @dependabot in https://github.com/uutils/findutils/pull/281
  • build(deps): bump walkdir from 2.3.3 to 2.4.0 by @dependabot in https://github.com/uutils/findutils/pull/284
  • build(deps): bump chrono from 0.4.28 to 0.4.29 by @dependabot in https://github.com/uutils/findutils/pull/285
  • build(deps): bump chrono from 0.4.29 to 0.4.31 by @dependabot in https://github.com/uutils/findutils/pull/288
  • build(deps): bump uucore from 0.0.21 to 0.0.22 by @dependabot in https://github.com/uutils/findutils/pull/291
  • build(deps): bump predicates from 3.0.3 to 3.0.4 by @dependabot in https://github.com/uutils/findutils/pull/289
  • build(deps): bump nix from 0.26.2 to 0.27.1 by @dependabot in https://github.com/uutils/findutils/pull/279
  • build(deps): bump dawidd6/action-download-artifact from 2 to 3 by @dependabot in https://github.com/uutils/findutils/pull/297
  • build(deps): bump once_cell from 1.18.0 to 1.19.0 by @dependabot in https://github.com/uutils/findutils/pull/296
  • build(deps): bump filetime from 0.2.22 to 0.2.23 by @dependabot in https://github.com/uutils/findutils/pull/295
  • build(deps): bump tempfile from 3.8.0 to 3.8.1 by @dependabot in https://github.com/uutils/findutils/pull/293
  • build(deps): bump uucore from 0.0.22 to 0.0.23 by @dependabot in https://github.com/uutils/findutils/pull/294
  • build(deps): bump actions/upload-artifact from 3 to 4 by @dependabot in https://github.com/uutils/findutils/pull/298
  • build(deps): bump tempfile from 3.8.1 to 3.9.0 by @dependabot in https://github.com/uutils/findutils/pull/299
  • build(deps): bump assert_cmd from 2.0.12 to 2.0.13 by @dependabot in https://github.com/uutils/findutils/pull/301
  • build(deps): bump predicates from 3.0.4 to 3.1.0 by @dependabot in https://github.com/uutils/findutils/pull/302
  • build(deps): bump chrono from 0.4.31 to 0.4.32 by @dependabot in https://github.com/uutils/findutils/pull/304
  • build(deps): bump shlex from 1.1.0 to 1.3.0 by @dependabot in https://github.com/uutils/findutils/pull/303
  • build(deps): bump uucore from 0.0.23 to 0.0.24 by @dependabot in https://github.com/uutils/findutils/pull/305
  • build(deps): bump chrono from 0.4.32 to 0.4.33 by @dependabot in https://github.com/uutils/findutils/pull/306
  • build(deps): bump chrono from 0.4.33 to 0.4.34 by @dependabot in https://github.com/uutils/findutils/pull/311
  • build(deps): bump tempfile from 3.9.0 to 3.10.0 by @dependabot in https://github.com/uutils/findutils/pull/309
  • build(deps): bump serial_test from 2.0.0 to 3.0.0 by @dependabot in https://github.com/uutils/findutils/pull/300
  • build(deps): bump assert_cmd from 2.0.13 to 2.0.14 by @dependabot in https://github.com/uutils/findutils/pull/312
  • Bump wasm-bindgen from 0.2.82 to 0.2.91 by @cakebaker in https://github.com/uutils/findutils/pull/317
  • Bump clap from 4.4.6 to 4.4.18 by @cakebaker in https://github.com/uutils/findutils/pull/319
  • build(deps): bump tempfile from 3.10.0 to 3.10.1 by @dependabot in https://github.com/uutils/findutils/pull/328
  • build(deps): bump walkdir from 2.4.0 to 2.5.0 by @dependabot in https://github.com/uutils/findutils/pull/329
  • build(deps): bump chrono from 0.4.34 to 0.4.35 by @dependabot in https://github.com/uutils/findutils/pull/330
  • xargs: upgrade to clap v4.4 by @cakebaker in https://github.com/uutils/findutils/pull/331
  • build(deps): bump clap from 4.4.18 to 4.5.2 by @dependabot in https://github.com/uutils/findutils/pull/332
  • build(deps): bump clap from 4.5.2 to 4.5.3 by @dependabot in https://github.com/uutils/findutils/pull/333
  • build(deps): bump clap from 4.5.3 to 4.5.4 by @dependabot in https://github.com/uutils/findutils/pull/340
  • build(deps): bump KyleMayes/install-llvm-action from 1 to 2 by @dependabot in https://github.com/uutils/findutils/pull/345
  • build(deps): bump chrono from 0.4.35 to 0.4.37 by @dependabot in https://github.com/uutils/findutils/pull/344
  • Bump nix from 0.27 to 0.28 & enable “fs” feature by @cakebaker in https://github.com/uutils/findutils/pull/327
  • Bump parking_lot_core from 0.9.3 to 0.9.9 by @cakebaker in https://github.com/uutils/findutils/pull/316
  • build(deps): bump uucore from 0.0.24 to 0.0.25 by @dependabot in https://github.com/uutils/findutils/pull/336
  • Cargo.toml: specify complete chrono version by @cakebaker in https://github.com/uutils/findutils/pull/339

New Contributors

  • @tertsdiepraam made their first contribution in https://github.com/uutils/findutils/pull/274
  • @jellehelsen made their first contribution in https://github.com/uutils/findutils/pull/272
  • @cakebaker made their first contribution in https://github.com/uutils/findutils/pull/313
  • @hanbings made their first contribution in https://github.com/uutils/findutils/pull/342

Full Changelog: https://github.com/uutils/findutils/compare/0.4.2…0.5.0

📦 Findutils 0.4.2 Release

What’s Changed

  • Remove appveyor configuration by @sylvestre in https://github.com/uutils/findutils/pull/263
  • Remove the travis configuration as we don’t use it by @sylvestre in https://github.com/uutils/findutils/pull/264
  • CI: test all features by @sylvestre in https://github.com/uutils/findutils/pull/267

dependencies upgrades

  • build(deps): bump once_cell from 1.17.1 to 1.18.0 by @dependabot in https://github.com/uutils/findutils/pull/250
  • build(deps): bump chrono from 0.4.24 to 0.4.26 by @dependabot in https://github.com/uutils/findutils/pull/249
  • build(deps): bump predicates from 3.0.2 to 3.0.3 by @dependabot in https://github.com/uutils/findutils/pull/245
  • move to uucore 0.0.20 by @sylvestre in https://github.com/uutils/findutils/pull/265

Full Changelog: https://github.com/uutils/findutils/compare/0.4.1…0.4.2

📦 Findutils 0.4.1 Release

What’s Changed

  • Fix spelling by @jayvdb in https://github.com/uutils/findutils/pull/229
  • replaced not equal operation with equality operator by @HelloShiv in https://github.com/uutils/findutils/pull/235
  • Refactor code to use String::new by @HelloShiv in https://github.com/uutils/findutils/pull/237
  • implemented assert! for resolving warning panic! by @HelloShiv in https://github.com/uutils/findutils/pull/227

Update of the dependencies

  • build(deps): bump regex from 1.7.1 to 1.7.3 by @dependabot in https://github.com/uutils/findutils/pull/228
  • build(deps): bump assert_cmd from 2.0.8 to 2.0.10 by @dependabot in https://github.com/uutils/findutils/pull/218
  • build(deps): bump chrono from 0.4.23 to 0.4.24 by @dependabot in https://github.com/uutils/findutils/pull/215
  • build(deps): bump tempfile from 3.3.0 to 3.4.0 by @dependabot in https://github.com/uutils/findutils/pull/214
  • build(deps): bump filetime from 0.2.19 to 0.2.20 by @dependabot in https://github.com/uutils/findutils/pull/208
  • build(deps): bump filetime from 0.2.20 to 0.2.21 by @dependabot in https://github.com/uutils/findutils/pull/234
  • build(deps): bump walkdir from 2.3.2 to 2.3.3 by @dependabot in https://github.com/uutils/findutils/pull/232
  • build(deps): bump serial_test from 1.0.0 to 2.0.0 by @dependabot in https://github.com/uutils/findutils/pull/230
  • build(deps): bump assert_cmd from 2.0.10 to 2.0.11 by @dependabot in https://github.com/uutils/findutils/pull/247
  • build(deps): bump tempfile from 3.4.0 to 3.6.0 by @dependabot in https://github.com/uutils/findutils/pull/248

New Contributors

  • @jayvdb made their first contribution in https://github.com/uutils/findutils/pull/229
  • @HelloShiv made their first contribution in https://github.com/uutils/findutils/pull/227

Full Changelog: https://github.com/uutils/findutils/compare/0.4.0…0.4.1

📦 Findutils 0.4.0 Release

What’s Changed

  • Make multi-exec only match {} + with nothing in between by @tavianator in https://github.com/uutils/findutils/pull/91
  • Upgrade to GitHub-native Dependabot by @dependabot-preview in https://github.com/uutils/findutils/pull/94
  • exec: Handle parent directories more carefully by @tavianator in https://github.com/uutils/findutils/pull/92
  • Add support for GNU-compatible printf by @refi64 in https://github.com/uutils/findutils/pull/120
  • Add initial parts of automated compatibility tests by @refi64 in https://github.com/uutils/findutils/pull/129
  • Add remaining portions of automated compatibility tests by @refi64 in https://github.com/uutils/findutils/pull/130
  • Add support for -print0 by @refi64 in https://github.com/uutils/findutils/pull/123
  • Add support for regex matching by @refi64 in https://github.com/uutils/findutils/pull/126
  • Add an initial implementation of xargs by @refi64 in https://github.com/uutils/findutils/pull/121
  • Fix compat tests not using the latest workflow by @refi64 in https://github.com/uutils/findutils/pull/133
  • Add support for -lname / -ilname by @refi64 in https://github.com/uutils/findutils/pull/138
  • Add support for -empty by @refi64 in https://github.com/uutils/findutils/pull/137
  • Add support for -xdev by @refi64 in https://github.com/uutils/findutils/pull/136
  • Avoid skipping the entire directory if a file hits -prune by @refi64 in https://github.com/uutils/findutils/pull/139
  • matchers: Replace new_box() with an into_box() trait method by @tavianator in https://github.com/uutils/findutils/pull/141
  • printf: Fix some time formatting to match GNU find by @tavianator in https://github.com/uutils/findutils/pull/146
  • Support -and as a synonym for -a by @tavianator in https://github.com/uutils/findutils/pull/145
  • Implement -P and – by @tavianator in https://github.com/uutils/findutils/pull/148
  • Implement -quit by @tavianator in https://github.com/uutils/findutils/pull/147
  • POSIX compliant globs by @tavianator in https://github.com/uutils/findutils/pull/151
  • find: Use the uucore mode parsing implementation for -perm by @tavianator in https://github.com/uutils/findutils/pull/154
  • find/matchers: Implement -mount as an alias for -xdev by @tavianator in https://github.com/uutils/findutils/pull/165
  • find/matchers: Add the ed and sed regex types by @tavianator in https://github.com/uutils/findutils/pull/166
  • find/matchers: Implement the -{read,writ,execut}able access checks by @tavianator in https://github.com/uutils/findutils/pull/168
  • find/matchers: Implement -inum and -links by @tavianator in https://github.com/uutils/findutils/pull/167
  • find: Don’t swallow mkfifo errors in the tests by @refi64 in https://github.com/uutils/findutils/pull/179
  • Add support for embedded “{}” by @int3 in https://github.com/uutils/findutils/pull/213

Code quality

  • Various clippy fixes + precommit by @sylvestre in https://github.com/uutils/findutils/pull/222
  • Fix a clippy warning by @sylvestre in https://github.com/uutils/findutils/pull/188
  • Fix some clippy warnings by @sylvestre in https://github.com/uutils/findutils/pull/103
  • Add back coverage with codecov by @sylvestre in https://github.com/uutils/findutils/pull/111
  • Various Clippy fixes by @sylvestre in https://github.com/uutils/findutils/pull/143

CI

  • ci: Update BFS testsuite to version 2.4 by @tavianator in https://github.com/uutils/findutils/pull/150
  • ci: Update bfs testsuite to version 2.6 by @tavianator in https://github.com/uutils/findutils/pull/163
  • ci: Also run the dejagnu tests from GNU findutils by @tavianator in https://github.com/uutils/findutils/pull/144
  • run the GNU testsuite in the CI by @sylvestre in https://github.com/uutils/findutils/pull/115
  • ci: Run the bfs testsuite by @tavianator in https://github.com/uutils/findutils/pull/116
  • fix the ci warnings by @sylvestre in https://github.com/uutils/findutils/pull/211

Dependencies

  • update predicates by @sylvestre in https://github.com/uutils/findutils/pull/104
  • Move tempfile dep to dev-dep by @sylvestre in https://github.com/uutils/findutils/pull/135
  • replace tempdir by tempfile by @sylvestre in https://github.com/uutils/findutils/pull/110
  • Bump once_cell from 1.9.0 to 1.10.0 by @dependabot in https://github.com/uutils/findutils/pull/152
  • build(deps): bump serial_test from 0.6.0 to 0.7.0 by @dependabot in https://github.com/uutils/findutils/pull/169
  • build(deps): bump serial_test from 0.7.0 to 0.8.0 by @dependabot in https://github.com/uutils/findutils/pull/170
  • build(deps): bump filetime from 0.2.16 to 0.2.17 by @dependabot in https://github.com/uutils/findutils/pull/172
  • build(deps): bump onig from 6.3.1 to 6.3.2 by @dependabot in https://github.com/uutils/findutils/pull/171
  • build(deps): bump once_cell from 1.12.0 to 1.13.0 by @dependabot in https://github.com/uutils/findutils/pull/173
  • build(deps): bump regex from 1.5.6 to 1.6.0 by @dependabot in https://github.com/uutils/findutils/pull/174
  • build(deps): bump onig from 6.3.2 to 6.4.0 by @dependabot in https://github.com/uutils/findutils/pull/176
  • build(deps): bump serial_test from 0.8.0 to 0.9.0 by @dependabot in https://github.com/uutils/findutils/pull/178
  • build(deps): bump nix from 0.24.2 to 0.25.0 by @dependabot in https://github.com/uutils/findutils/pull/180
  • build(deps): bump chrono from 0.4.19 to 0.4.20 by @dependabot in https://github.com/uutils/findutils/pull/175
  • build(deps): bump once_cell from 1.13.0 to 1.13.1 by @dependabot in https://github.com/uutils/findutils/pull/182
  • build(deps): bump chrono from 0.4.20 to 0.4.22 by @dependabot in https://github.com/uutils/findutils/pull/181
  • build(deps): bump iana-time-zone from 0.1.44 to 0.1.47 by @dependabot in https://github.com/uutils/findutils/pull/183
  • build(deps): bump once_cell from 1.13.1 to 1.15.0 by @dependabot in https://github.com/uutils/findutils/pull/185
  • build(deps): bump assert_cmd from 2.0.4 to 2.0.5 by @dependabot in https://github.com/uutils/findutils/pull/187
  • build(deps): bump predicates from 2.1.5 to 3.0.2 by @dependabot in https://github.com/uutils/findutils/pull/220
  • build(deps): bump filetime from 0.2.17 to 0.2.18 by @dependabot in https://github.com/uutils/findutils/pull/186
  • ci: Update bfs to 2.6.2 by @tavianator in https://github.com/uutils/findutils/pull/189
  • build(deps): bump once_cell from 1.15.0 to 1.16.0 by @dependabot in https://github.com/uutils/findutils/pull/190
  • build(deps): bump predicates from 2.1.1 to 2.1.2 by @dependabot in https://github.com/uutils/findutils/pull/191
  • build(deps): bump assert_cmd from 2.0.5 to 2.0.6 by @dependabot in https://github.com/uutils/findutils/pull/193
  • build(deps): bump regex from 1.6.0 to 1.7.0 by @dependabot in https://github.com/uutils/findutils/pull/192
  • build(deps): bump predicates from 2.1.2 to 2.1.3 by @dependabot in https://github.com/uutils/findutils/pull/194
  • build(deps): bump chrono from 0.4.22 to 0.4.23 by @dependabot in https://github.com/uutils/findutils/pull/195
  • build(deps): bump nix from 0.25.0 to 0.26.1 by @dependabot in https://github.com/uutils/findutils/pull/196
  • build(deps): bump filetime from 0.2.18 to 0.2.19 by @dependabot in https://github.com/uutils/findutils/pull/199
  • build(deps): bump assert_cmd from 2.0.6 to 2.0.7 by @dependabot in https://github.com/uutils/findutils/pull/198
  • build(deps): bump predicates from 2.1.3 to 2.1.4 by @dependabot in https://github.com/uutils/findutils/pull/197
  • build(deps): bump serial_test from 0.9.0 to 0.10.0 by @dependabot in https://github.com/uutils/findutils/pull/200
  • build(deps): bump predicates from 2.1.4 to 2.1.5 by @dependabot in https://github.com/uutils/findutils/pull/202
  • build(deps): bump once_cell from 1.16.0 to 1.17.0 by @dependabot in https://github.com/uutils/findutils/pull/201
  • build(deps): bump assert_cmd from 2.0.7 to 2.0.8 by @dependabot in https://github.com/uutils/findutils/pull/204
  • build(deps): bump regex from 1.7.0 to 1.7.1 by @dependabot in https://github.com/uutils/findutils/pull/203
  • build(deps): bump nix from 0.26.1 to 0.26.2 by @dependabot in https://github.com/uutils/findutils/pull/205
  • build(deps): bump serial_test from 0.10.0 to 1.0.0 by @dependabot in https://github.com/uutils/findutils/pull/206
  • build(deps): bump bumpalo from 3.10.0 to 3.12.0 by @dependabot in https://github.com/uutils/findutils/pull/207
  • build(deps): bump once_cell from 1.17.0 to 1.17.1 by @dependabot in https://github.com/uutils/findutils/pull/209
  • Bump walkdir from 2.3.1 to 2.3.2 by @dependabot-preview in https://github.com/uutils/findutils/pull/90
  • Bump regex from 1.4.5 to 1.5.3 by @dependabot-preview in https://github.com/uutils/findutils/pull/96
  • Bump assert_cmd from 1.0.3 to 1.0.4 by @dependabot in https://github.com/uutils/findutils/pull/98
  • Bump regex from 1.5.3 to 1.5.4 by @dependabot in https://github.com/uutils/findutils/pull/97
  • Bump predicates from 1.0.7 to 1.0.8 by @dependabot-preview in https://github.com/uutils/findutils/pull/95
  • Bump assert_cmd from 1.0.4 to 1.0.5 by @dependabot in https://github.com/uutils/findutils/pull/99
  • Bump assert_cmd from 1.0.5 to 1.0.8 by @dependabot in https://github.com/uutils/findutils/pull/106
  • Bump assert_cmd from 1.0.8 to 2.0.0 by @dependabot in https://github.com/uutils/findutils/pull/107
  • Bump predicates from 2.0.0 to 2.0.1 by @dependabot in https://github.com/uutils/findutils/pull/105
  • Bump predicates from 2.0.1 to 2.0.2 by @dependabot in https://github.com/uutils/findutils/pull/108
  • Bump assert_cmd from 2.0.0 to 2.0.1 by @dependabot in https://github.com/uutils/findutils/pull/109
  • Update uucore to 0.0.12 by @refi64 in https://github.com/uutils/findutils/pull/132
  • Bump serial_test from 0.5.1 to 0.6.0 by @dependabot in https://github.com/uutils/findutils/pull/149
  • Bump assert_cmd from 2.0.1 to 2.0.2 by @dependabot in https://github.com/uutils/findutils/pull/117
  • Bump predicates from 2.0.2 to 2.1.0 by @dependabot in https://github.com/uutils/findutils/pull/119
  • Bump tempfile from 3.2.0 to 3.3.0 by @dependabot in https://github.com/uutils/findutils/pull/122
  • Bump predicates from 2.1.0 to 2.1.1 by @dependabot in https://github.com/uutils/findutils/pull/124
  • Bump assert_cmd from 2.0.2 to 2.0.4 by @dependabot in https://github.com/uutils/findutils/pull/127
  • Bump regex from 1.5.4 to 1.5.5 by @dependabot in https://github.com/uutils/findutils/pull/153
  • Bump filetime from 0.2.15 to 0.2.16 by @dependabot in https://github.com/uutils/findutils/pull/156
  • Bump once_cell from 1.10.0 to 1.11.0 by @dependabot in https://github.com/uutils/findutils/pull/157
  • Bump actions/upload-artifact from 2 to 3 by @dependabot in https://github.com/uutils/findutils/pull/158
  • Bump actions/checkout from 2 to 3 by @dependabot in https://github.com/uutils/findutils/pull/159
  • Bump codecov/codecov-action from 1 to 3 by @dependabot in https://github.com/uutils/findutils/pull/160
  • Bump regex from 1.5.5 to 1.5.6 by @dependabot in https://github.com/uutils/findutils/pull/161
  • build(deps): bump once_cell from 1.11.0 to 1.12.0 by @dependabot in https://github.com/uutils/findutils/pull/162

New Contributors

  • @tavianator made their first contribution in https://github.com/uutils/findutils/pull/91
  • @dependabot made their first contribution in https://github.com/uutils/findutils/pull/98
  • @sylvestre made their first contribution in https://github.com/uutils/findutils/pull/103
  • @refi64 made their first contribution in https://github.com/uutils/findutils/pull/120
  • @int3 made their first contribution in https://github.com/uutils/findutils/pull/213

Full Changelog: https://github.com/uutils/findutils/compare/0.1.0…0.4.0

📦 Findutils 0.3.0 Release

Findutils 0.3.0 (tagged 2022-01-26) has no GitHub release page, so these notes were reconstructed from the git history between the 0.1.0 and 0.3.0 tags. The version was bumped to 0.2.0 during this period, but no 0.2.0 tag or release was ever published — so this entry covers everything since 0.1.0.

The headline change is the first implementation of xargs, which makes the project a two-utility suite. This release also adds -regex, -print0 and GNU-compatible -printf, and sets up the compatibility testing against the GNU and bfs test suites that the project still relies on.

Highlights

xargs

  • An initial implementation of xargs by @refi64 in https://github.com/uutils/findutils/pull/121

find: new features

  • GNU-compatible -printf by @refi64 in https://github.com/uutils/findutils/pull/120
  • -regex matching by @refi64 in https://github.com/uutils/findutils/pull/126
  • -print0 by @refi64 in https://github.com/uutils/findutils/pull/123
  • --version on the command line by @sylvestre

find: fixes

  • Make multi--exec only match {} + with nothing in between by @tavianator in https://github.com/uutils/findutils/pull/91
  • -exec: handle parent directories more carefully by @tavianator in https://github.com/uutils/findutils/pull/92

Compatibility testing

  • Automated compatibility tests, in two parts, by @refi64 in https://github.com/uutils/findutils/pull/129 and https://github.com/uutils/findutils/pull/130
  • A script to run the GNU findutils test suite, run it in CI, allow running a single test, avoid rebuilding GNU every time, and document the workflow, by @sylvestre
  • Run the bfs test suite in CI by @tavianator

Project & infrastructure

  • Code coverage restored via Codecov by @sylvestre
  • tempdir replaced by tempfile, and tempfile moved to dev-dependencies (cargo udeps) by @sylvestre
  • uucore updated to 0.0.12 by @refi64
  • Migration to GitHub-native Dependabot
  • Clippy cleanups, README updates (crates.io badge, Travis badge removed) and removal of the unused AUTHORS file by @sylvestre

Contributors

@refi64, @sylvestre and @tavianator.

📦 Findutils 0.1.0 Release

Findutils 0.1.0 (tagged 2021-03-15) is the first tagged release of the project. It has no GitHub release page, so these notes were reconstructed from the git history up to the 0.1.0 tag.

It covers the initial implementation of find: the matcher-tree architecture, the bulk of the GNU predicates, and the test infrastructure the project still uses today. xargs did not exist yet — it arrived in 0.3.0.

Highlights

The find expression engine

  • Initial implementation supporting -name, -print and a subset of -type, by @mcharsley
  • Logical operators: -o/-or, -a/-and, !, parentheses, and comma lists
  • -depth, -maxdepth, -mindepth and depth-first traversal
  • -prune
  • Directory walking switched to the walkdir crate

Predicates

  • -size by @mcharsley
  • -newer, -ctime, -atime, -mtime by @mcharsley
  • -exec and -execdir by @mcharsley, plus a fix for -execdir on the root directory
  • -perm by @mcharsley
  • -type: added l, b, c, p and s by @ilius
  • -delete by @Arcterus, extended to all file types and made to skip the current directory; tests and fixes by @dahc

Correctness fixes

  • -help was matched too aggressively
  • A lone - is treated as a filename
  • Double negation (! !) fixed by @Arcterus

Portability

  • Windows support: path separator handling in tests, testing-commandline argument reporting, and #[cfg(unix)] gating of the permission code, by @mcharsley
  • AppVeyor (Windows) and Travis CI configurations by Lei Zhang

Testing & infrastructure

  • Fake-stdout dependency injection so tests can assert on exact output, and argument-parsing tests, by @mcharsley
  • Integration tests for the find command by @dahc
  • GitHub Actions CI workflow by @dahc
  • Code coverage via Codecov and tarpaulin by @Arcterus
  • Migration to the Rust 2018 edition and rustfmt formatting by @Arcterus
  • Various clippy fixes, including clippy::borrowed_box and clippy::unnecessary_wraps on process_dir, by @ilius

Dependencies

Regular dependency bumps via Dependabot: regex (0.2.2 → 1.4.5), walkdir (2.2.7 → 2.3.1), glob (0.2.11 → 0.3.0), tempdir (0.3.5 → 0.3.7), assert_cmd (1.0.2 → 1.0.3) and predicates (1.0.6 → 1.0.7).

Contributors

@mcharsley, @Arcterus, @dahc, @ilius, @sylvestre, @rofrol, @bippityboppity, Lei Zhang, Jeremy Soller and cnd.