Skip to content
/ godu Public

Simple golang utility helping to discover large files/folders.

License

Notifications You must be signed in to change notification settings

viktomas/godu

Repository files navigation

godu

Build Status codecov Go Report Card Gitter chat

Find the files that are taking up your space.

Tired of looking like a noob with Disk Inventory X, Daisy Disk or SpaceMonger? Do you want something that:

  • can do the job
  • scans your drive blazingly fast
  • works in terminal
  • makes you look cool
  • is written in Golang
  • you can contribute to

??

Well then look no more and try out the godu.

Installation

With homebrew:

brew tap viktomas/taps
brew install godu

With go:

go install github.com/viktomas/godu@latest

Or grab a Released binary for your OS and architecture, extract it and put it on your $PATH e.g. /usr/local/bin.

Configuration

You can specify names of ignored folders in .goduignore in your home directory:

> cat ~/.goduignore
node_modules
>

I found that I could reduce time it took to crawl through the whole drive to 25% when I started ignoring all node_modules which cumulatively contain gigabytes of small text files.

The .goduignore is currently only supporting whole folder names. PR that will make it work like .gitignore is welcomed.

Usage

godu ~
godu -l 100 / # walks the whole root but shows only files larger than 100MB
# godu -print0 ~ | xargs -0 rm # use with caution! Will delete all marked files!

Favourite aliases

# After you exit godu, all selected files get deleted
alias gd="godu -print0 | xargs -0 rm -rf"
# Usage gm ~/destination/folder
# After you exit godu, all selected files get moved to ~/destination/folder
alias gm="godu -print0 | xargs -0 -I _ mv _ "

The currently selected file/folder can be marked/unmarked with the space key. Upon exiting, godu prints all marked files/folders to stdout. You can further process them with commands like xargs.

Mind you -l <size_limit_in_mb> option is not speeding up the walking process, it just allows you to filter small files you are not interested in from the output. The default limit is 10MB.

Use arrows (or hjkl) to move around, space to select a file / folder, ESC, q or CTRL+C to quit