Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/viktomas/godu
Simple golang utility helping to discover large files/folders.
https://github.com/viktomas/godu
disk-cleaner disk-space golang
Last synced: 16 days ago
JSON representation
Simple golang utility helping to discover large files/folders.
- Host: GitHub
- URL: https://github.com/viktomas/godu
- Owner: viktomas
- License: mit
- Created: 2016-12-31T05:08:50.000Z (almost 8 years ago)
- Default Branch: main
- Last Pushed: 2024-05-26T12:02:18.000Z (6 months ago)
- Last Synced: 2024-06-18T18:32:56.885Z (5 months ago)
- Topics: disk-cleaner, disk-space, golang
- Language: Go
- Homepage:
- Size: 239 KB
- Stars: 518
- Watchers: 11
- Forks: 25
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
# godu
[![Build Status](https://travis-ci.org/viktomas/godu.svg?branch=master)](https://travis-ci.org/viktomas/godu)
[![codecov](https://codecov.io/gh/viktomas/godu/branch/master/graph/badge.svg)](https://codecov.io/gh/viktomas/godu)
[![Go Report Card](https://goreportcard.com/badge/github.com/viktomas/godu)](https://goreportcard.com/report/github.com/viktomas/godu)
[![Gitter chat](https://badges.gitter.im/viktomas-godu.png)](https://gitter.im/viktomas-godu)Find the files that are taking up your space.
Tired of looking like a noob with [Disk Inventory X](http://www.derlien.com/), [Daisy Disk](https://daisydiskapp.com/) 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`:
```sh
brew tap viktomas/taps
brew install godu
```With `go`:
```sh
go install github.com/viktomas/godu@latest
```Or grab a [Released binary](https://github.com/viktomas/godu/releases/latest) 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:
```sh
> 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
```sh
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
```bash
# 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 ` 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