A minimal, colorized replacement for ls.
- Colorizes output based on file type with
LS_COLORScustomization - Optional OSC 8 hyperlinks with
--hyperlink=WHEN - Supports long listings and sorting with
--sort=WORD(time, size, atime, ctime, extension, version, none) - Recursive listing and directory-first ordering
- Indicator characters configurable with
--indicator-style=STYLE(none,slash,file-type,classify) - Pattern ignoring and indicator characters ("/", "*", "@"); use
--file-typefor directory markers only - Hide entries matching glob patterns with
--hide=PATTERN - Optional dereferencing of command line symlinks (
-H) - Optional display of SELinux contexts (
-Z, Linux only, requires libselinux) - Quoting styles with
--quoting-style=STYLE(literal,c,escape), with-Qand-bas shortcuts - Print names literally with
-N/--literal, overriding quoting and escaping options - Hide control characters with
-q/--hide-control-chars - Display control characters literally with
--show-control-chars - Human readable sizes (
-huses powers of 1024,--siuses powers of 1000), column layout (-C/-x) and comma-separated output (-m) - Override the block size used for
-swith--block-size=SIZEwhereSIZEis a number of bytes with no unit suffix; use-kfor 1 KiB blocks - Set output width with
-w COLSand tab size with-T COLS - Customizable timestamp format via
--time-style=FMTand--full-time - Select which timestamp to show with
--time=WORD(mod,access,use,status) - Cross‑platform Makefile for Linux, macOS and NetBSD
For a complete list of options see vlsdoc.md or the manual page at man/vls.1.
Run make to compile. Override CFLAGS or PREFIX as needed.
SELinux support requires the libselinux development package to be installed.
Install with sudo make install. Use PREFIX to choose a different
destination.
Run make test to compile vls and execute a small regression suite.
The tests create a temporary directory under build/ and exercise
options such as -A, -d, -C, -m and both --color=always and
--color=never. Output and the exit status for each invocation are
saved in build/ for inspection. The script verifies that every command
succeeds and prints expected data. A message is printed once all tests
pass.
Distributed under the BSD 2-Clause "Simplified" License. See LICENSE for details.