# rash-coreutils Portable Unix-style core utilities for Rash, implemented in Racket. Version 0.2.7 includes text/pipeline tools (`head`, `tail`, `wc`, `sort`, `uniq`, `cut`, `tee`, `tr`), path and filesystem helpers (`basename`, `dirname`, `realpath`, `readlink`, `stat`, `du`, `df`, `mktemp`), environment commands (`printenv`, `env`), and `date` backed by Gregor. Rash remains responsible for shell syntax such as globbing, pipelines and redirection. `rash-coreutils` additionally accepts Racket regular expressions as path selectors. ## Racket tooling `rash-coreutils` also exposes the `raco` command from the active Racket installation, without requiring `raco` to be on PATH. ```text raco setup rash-coreutils raco pkg show ``` In Racket expression mode, use `coreutils-raco`, for example `(coreutils-raco '(setup rash-coreutils))`. The name `raco` is reserved for the Rash command binding. ## Windows paths Commands that print paths use forward slashes on Windows. This keeps their textual output directly reusable in Rash line mode, where a backslash is an escape character. Internally, Racket path values remain native paths. ```text pwd C:/devel/racket/rash-coreutils/ mktemp C:/Users/hans/AppData/Local/Temp/tmp123 ``` A native Racket path value can still be passed directly, for example `ls (values (find-system-path 'temp-dir))`.