#filesize #directory-traversal #command-line #multi-threading #size #numbers #count

app fcnt

fcnt is a cmd-line tool for counting the number of files in given directories

5 releases

0.2.8 Oct 24, 2024
0.2.7 May 3, 2024
0.2.6 Feb 25, 2024
0.2.5 Aug 8, 2023
0.2.3 Jan 30, 2023

#323 in Command line utilities

MIT license

28KB
686 lines

fcnt

Crates.io Crates.io

fcnt is a file counter used in command line.

It can quickly count the number and size of huge amount of files in multiple directories through multi-threading.

Usage

$ fcnt [OPTIONS] [DIRECTORIES]...
  • Arguments:

    [DIRECTORIES]... The directories (default: ./)

  • Options:

    -a                   Count all regular and hidden files
    -d                   Count the number of directories
    -o <ORDER_BY>        The value to sort the results. Possible values: [n]ame, [f]ile, [d]ir, [s]ize.
    -r <PATTERN>         Match entries using regex (only matche filenames)
    -R                   Non-recursive mode (files in sub-directories will be ignored)
    -s                   Count the total size of files
    -t <TOP>             The number of threads for traversal (invalid in `non_recursive` mode)
    -T <THREAD_NUM>      The number of threads for traversal (invalid in `non_recursive` mode)
    -v                   Verbose mode, open this option will display the found entries
    -h, --help           Print help (see more with '--help')
    -V, --version        Print version
    

Example

By default, only the number of sub-files in each directory is included in the result.

fcnt ./Pictures ./Music ./src/package
Path           Files
./src/package   8070
./Pictures      7799
./Music         3455
──────────────────────────
Total          19324

You can use the -d option to show the number of subdirectories and the -s option to show the size of each directory.

$ fcnt -s ./Pictures ./Music ./src/package
Path           Files  Dirs   Size
./Pictures      7799   274  17.5G
./Music         3455  1196    21G
./src/package   8070  3120     4G
─────────────────────────────────
Total          19324  4590  42.6G

The -r option can be used to filter files by regex and the -o option sorts the results in descending order on the specified column.

# Count the number of ".py" files in each subdirectory of "src" and sort by files.
$ fcnt -r '\.py$' -o f src/*
Path            Files
src/codebook/     829
src/package/      376
src/test/          31
src/spiderman/      7
src/Notes/          0
─────────────────────
Total            1243

Dependencies

~3.5–5MB
~91K SLoC