Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Apr 2, 2025. It is now read-only.
/tin-summerPublic archive

Find build artifacts that are taking up disk space

License

NotificationsYou must be signed in to change notification settings

vmchale/tin-summer

Repository files navigation

Windows build statusBuild Status

If you do a significant amount of programming, you'll probably end up withbuild artifacts scattered about.sn is a tool to help you find thoseartifacts.

sn is also a replacement fordu. It has niceroutput, saner commands and defaults, and it even runs faster on big directoriesthanks to multithreading.

Installation

Script

Enter the following in a command prompt:

curl -LSfs https://japaric.github.io/trust/install.sh | sh -s -- --git vmchale/tin-summer

Binary install

If the script doesn't work for you, you can download a binary from thereleasespage.

Cargo

If your platform doesn't have binaries, or you just want to build from source, getcargo. Then:

 $ cargo install tin-summer

Make sure you are on nightly; otherwise

 $ rustup run nightly cargo install tin-summer

Use

To list directory and file sizes for the current directory:

$ sn f

To get a list of directory sizes concurrently, excluding version control:

 $ sn p --exclude '\.git|\.pijul|_darcs|\.hg'

To get a sorted list of the 12 biggest directories in$DIR:

 $ sn sort $DIR -n12

To search current directory for directories with build artifacts:

 $ sn ar

To look for artifacts or directories containing artifacts that occupy more than 200MB of disk space:

 $ sn ar -t200M

Accessibility

To turn off colorized output:

export CLICOLOR=0

Comparison (or, 10 Things I Hate About du)

Reasons to usedu

  • Reads disk usage, not just file sizes
  • Optionally dereferences symlinks
  • Slightly faster on small directories
  • Stable and well-supported

Reasons to usesn

  • Faster on large directories
  • Usesregex for exclusions, making itdramatically faster thandu when used with the--exclude flag.
  • Defaults to human-readable output
  • Colorized output
  • Nicer help viaclap
  • Provides sorted output
  • Finds build artifacts
  • Reads file sizes, not disk usage
  • Extensible in Rust

Benchmark results

Directory SizeToolCommandTime
600MBsnsn p60.74 ms
600MBsnsn d99.92 ms
600MBdudu -hacd288.28 ms
4GBsnsn p185.2 ms
4GBsnsn d271.9 ms
4GBdudu -hacd2195.5 ms
700MBsnsn p91.05 ms
700MBsnsn d176.3 ms
700MBdudu -hacd2153.8 ms
7MBsnsn p19.48 ms
7MBsnsn d12.72 ms
7MBdudu -hacd210.13 ms

These commands are all essentially equivalent in function, except thatsn pmay use more threads thansn a ordu. Results were obtained using Gabriel Gonzalez'sbenchtool. You can see pretty criterion graphshere orhere.

In summary: yes,sn actually is faster on larger directories, but it is alsoslower on small ones. I'm hoping to make it faster in the future; the currentnaïve concurrency model has obvious directions for improvement.

Screenshots (alacritty + solarized dark)

The Tin Summer

Displaying a user's timeline in a terminal.

du

Displaying a user's timeline in a terminal.

Heuristic for build artifacts

Currently,sn looks for files that either have an extension associated withbuild artifacts, or executable files that are ignored by version control. It also looks for "builddirectories", like.stack-work,elm-stuff, etc. and if it finds aconfiguration file liketweet-hs.cabal, it considersall theircontents to be build artifacts.

Languages Supported

The following is a list of languagessn artifacts has been tested with.Theintent is to support basically anything, so feel free to open a PR or start an issue.

  • Haskell (incl. GHCJS)
  • Rust
  • Julia
  • Python
  • Elm
  • Nim
  • Vimscript
  • TeX
  • Idris
  • FORTRAN
  • Ruby
  • C
Autoclean

sn can clean up your artifacts for you, but only for the above-indicatedlanguages. It is still experimental, but it has been tested and should notdelete unwanted files (though it may not clean everything it should).


[8]ページ先頭

©2009-2025 Movatter.jp