{"id":13586987,"url":"https://github.com/Angelmmiguel/fu","last_synced_at":"2025-04-07T18:35:23.255Z","repository":{"id":43332033,"uuid":"460597267","full_name":"Angelmmiguel/fu","owner":"Angelmmiguel","description":"A modern du replacement, with new features and a better output","archived":false,"fork":false,"pushed_at":"2023-02-03T20:44:28.000Z","size":37,"stargazers_count":16,"open_issues_count":8,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-04-15T15:49:53.108Z","etag":null,"topics":["cli","du","filesize"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Angelmmiguel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2022-02-17T20:29:03.000Z","updated_at":"2023-08-04T20:48:47.000Z","dependencies_parsed_at":"2023-02-15T22:31:26.727Z","dependency_job_id":null,"html_url":"https://github.com/Angelmmiguel/fu","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Angelmmiguel%2Ffu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Angelmmiguel%2Ffu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Angelmmiguel%2Ffu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Angelmmiguel%2Ffu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Angelmmiguel","download_url":"https://codeload.github.com/Angelmmiguel/fu/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247707872,"owners_count":20982866,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","du","filesize"],"created_at":"2024-08-01T15:05:57.157Z","updated_at":"2025-04-07T18:35:22.982Z","avatar_url":"https://github.com/Angelmmiguel.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg width=\"400\" alt=\"Fu example screenshot showing the size of files in the project\" src=\"https://user-images.githubusercontent.com/4056725/156439322-8e8f56b7-a4ae-4489-8429-323489f6a8a2.png\"\u003e\n  \u003cbr\u003e\n  \u003ca href=\"https://github.com/Angelmmiguel/fu/actions?query=workflow%3ARust\"\u003e\n    \u003cimg src=\"https://github.com/Angelmmiguel/fu/workflows/Rust/badge.svg\" alt=\"Build Status\"\u003e\n  \u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/License-Apache--2.0-blue\" alt=\"license\"\u003e\n\u003c/p\u003e\n\n# fu\n\n`fu` is a `du` alike CLI. It comes with a set of new features and a better output. For example, it allows you to sort and limit the number of entries and provides a colorized output to highlight heaviest entries.\n\n## Installation\n\n### MacOS\n\nTo install it using view, run the following commands:\n\n```\nbrew tap Angelmmiguel/tap\nbrew install Angelmmiguel/tap/fu\n```\n\n\u003cdetails\u003e\n  \u003csummary\u003eInstall \u003ccode\u003efu\u003c/code\u003e without brew\u003c/summary\u003e\n\nRun the following commands to:\n\n1. Download the file from the GitHub releases page\n1. Uncompress it\n1. Remove the quarantine attribute from MacOS\n1. Move the CLI binary to /usr/local/bin\n1. Remove any remaining file\n\n```\ncurl -L \\\n  https://github.com/Angelmmiguel/fu/releases/latest/download/fu-x86_64-apple-darwin.tar.gz \\\n    -o /tmp/fu-x86_64-apple-darwin.tar.gz \u0026\u0026 \\\n  tar -xvf /tmp/fu-x86_64-apple-darwin.tar.gz -C /tmp \u0026\u0026 \\\n  xattr -d com.apple.quarantine /tmp/fu-x86_64-apple-darwin/fu \u0026\u0026 \\\n  mv /tmp/fu-x86_64-apple-darwin/fu /usr/local/bin \u0026\u0026 \\\n  rm -r /tmp/fu-x86_64-apple-darwin.tar.gz /tmp/fu-x86_64-apple-darwin\n```\n\nThe `xattr` call is required because downloaded binaries are marked as \"quarantine\" by MacOS. In addition to that, the system may block `fu` CLI due to unknown signature. You can allow it by accessing the _Security and Privacy_ system preference panel and clicking on the _Allow anyway_ button.\n\nThis will install the `fu` CLI in the `/usr/local/bin` folder.\n\n\u003c/details\u003e\n\n### Linux\n\nRun the following commands in a terminal:\n\n```\ncurl -L \\\n  https://github.com/Angelmmiguel/fu/releases/latest/download/fu-x86_64-unknown-linux-gnu.tar.gz \\\n    -o /tmp/fu-x86_64-unknown-linux-gnu.tar.gz \u0026\u0026 \\\n  tar -xvf /tmp/fu-x86_64-unknown-linux-gnu.tar.gz -C /tmp \u0026\u0026 \\\n  mv /tmp/fu-x86_64-unknown-linux-gnu/fu /usr/local/bin \u0026\u0026 \\\n  rm -r /tmp/fu-x86_64-unknown-linux-gnu.tar.gz /tmp/fu-x86_64-unknown-linux-gnu\n```\n\nThis will install the `fu` CLI in the `/usr/local/bin` folder.\n\n### Windows\n\nFor Windows, please run the following commands to install it with [Scoop](https://scoop.sh/):\n\n```\nscoop bucket add extras\nscoop install fu\n```\n\n\u003cdetails\u003e\n  \u003csummary\u003eInstall \u003ccode\u003efu\u003c/code\u003e without Scoop\u003c/summary\u003e\n  \nFollow these steps:\n\n1. Download the latest release from [the releases page](https://github.com/Angelmmiguel/fu/releases/latest/download/fu-x86_64-pc-windows-gnu.tar.gz)\n1. Uncompress it\n1. Place the `fu.exe` binary in a folder that it's referenced in your `PATH`\n\n\u003c/details\u003e\n\n## Usage\n\n```\n$ fu --help\nfu\nSearch for a pattern in a file and display the lines that contain it\n\nUSAGE:\n    fu [OPTIONS] \u003cPATH\u003e\n\nARGS:\n    \u003cPATH\u003e    The path to the file to read\n\nOPTIONS:\n    -h, --help         Print help information\n        --no-colors    Disable the colors in the output\n        --no-header    Hide the headers from the output\n    -s, --sort         Sort the output based on the size\n    -t, --top \u003cTOP\u003e    Sort and limit the output to the N heaviest entries\n```\n\n### Sort the entries by size\n\n```\n$ fu --sort ./\nDISK    BYTES   PATH\n258M    238M    target\n492K    71K     .git\n12K     11K     LICENSE\n8K      6K      Cargo.lock\n12K     4K      src\n4K      1K      README.md\n4K      361B    Cargo.toml\n4K      263B    .github\n4K      131B    .gitignore\n```\n\n### Just the sum of the folder\n\n```\n$ fu .\nDISK    BYTES   PATH\n259M    239M    .\n```\n\n### Sort and show top N entries\n\n```\n$ fu --top 2 ./\nDISK    BYTES   PATH\n258M    238M    target\n492K    71K     .git\n```\n\n### Use glob\n\n```\n$ fu ./*.md\nDISK    BYTES   PATH\n4K      1K      ./README.md\n```\n\n### Hide headers\n\n```\n$ fu --top 2 --no-headers ./\n258M    238M    target\n492K    71K     .git\n```\n\n## Development\n\nTo develop `fu` you need to install the Rust language on your environment:\n\n- [Get started with Rust](https://www.rust-lang.org/learn/get-started)\n\nThen, you need to clone the project and start exploring the CLI:\n\n```\n# Clone the repo\ngit clone https://github.com/Angelmmiguel/fu.git \u0026\u0026 cd fu\n\n# Run the CLI (development) against the current folder\ncargo run -- ./\n\n# Run tests\ncargo tests\n\n# Build the CLI\ncargo build\n\n# Build using the release profile\ncargo build --release\n```\n\n## Why?\n\nI developed `fu` for two main reasons:\n\n- I love to use small projects to learn new languages, frameworks, patterns, etc. So, I use `fu` as an excuse to start learning Rust language.\n- Try to offer an alternative and add missing features for well known CLIs I use everyday. I use `du`, although most of the times I combine it with other CLIs that helps me to filter and sort.\n\nThat's all! Feel free to request new features and let's discuss about how we can improve `fu` :)\n\n## Acknowledgements\n\n* Thanks to [@Slach](https://github.com/Slach) for including fu in the Scoop Extras repository (See #40)\n\n## License\n\n`fu` is released under the Apache License v2.0 (See [LICENSE](https://github.com/Angelmmiguel/fu/blob/main/LICENSE)).\n\nCopyright 2022 [Angel M Miguel](https://angel.kiwi).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAngelmmiguel%2Ffu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAngelmmiguel%2Ffu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAngelmmiguel%2Ffu/lists"}