Paths
First pls organises paths supplied as CLI arguments into groups of solo files and individual
directories. Then it prints each group one by one.
pls README.md Cargo.toml Cargo.lock src docs README.md Cargo.toml Cargo.lock
src: args/ └─ args.rs commands/ └─ commands.rs config/ └─ config.rs enums/ └─ enums.rs ext/ └─ ext.rs fmt/ └─ fmt.rs gfx/ └─ gfx.rs models/ └─ models.rs output/ └─ output.rs pack/ └─ pack.rs traits/ └─ traits.rs utils/ └─ utils.rs vsc/ └─ vsc.rs exc.rs main.rs .pls.yml
docs: node_modules/ public/ src/ astro.config.ts justfile package.json .pls.yml tsconfig.jsonSolo files
Section titled “Solo files”The solo files group consists of all files supplied individually. These files are collected into one
group. Each of the files in this group comes with its own separate configuration
derived from .pls.yml files.
The special thing here is that the group also has its own configuration determined from the common ancestor of all these files. This group-level configuration sets top-level options such as table headings, box-drawing characters and importance scales.
Consider the following filesystem tree:
file_group├── .pls.yml├── a└── subdir ├── .pls.yml └── bapp_const: table: header_style: red bold underlineentry_const: user_styles: curr: green bold other: green boldspecs: - pattern: ^a$ style: red underlineapp_const: table: header_style: blueentry_const: nlink_styles: file_sing: blue timestamp_formats: mtime: "<bold blue>[year]-[month]-[day]</>"specs: - pattern: ^a$ style: blue icons: - filepls a ./../file_group/./subdir/aLink# T Permissions User Group Size Modified Name 1 f rw- r-- r-- runner runner 0.0 B 2026-Jul-11 10:32am a 1 f rw- r-- r-- runner runner 0.0 B 2026-07-11 ./../file_group/./subdir/aNote how both files retain their individual configurations for the row, but the table settings come
from the outer .pls.yml file. Also note that the file names are shown exactly as they were passed
on the command line.
Symlinks
Section titled “Symlinks”By default, pls does not follow symlinks in the arguments provided to it. So a symlink to a
directory will be treated as a file input and will not list the contents of the target directory.
pls sym sym@ ./dirpls ./dir LICENSE README.md