ls for filesystem

List the filenames, sizes, and modification times of items in a directory.


> ls (pattern) --all --long --short-names --full-paths --du --directory --mime-type


  • pattern: the glob pattern to use
  • --all (-a): Show hidden files
  • --long (-l): Get all available columns for each entry (slower; columns are platform-dependent)
  • --short-names (-s): Only print the file names, and not the path
  • --full-paths (-f): display paths as absolute paths
  • --du (-d): Display the apparent directory size ("disk usage") in place of the directory metadata size
  • --directory (-D): List the specified directory itself instead of its contents
  • --mime-type (-m): Show mime-type in type column instead of 'file' (based on filenames only; files' contents are not examined)

Input/output types:



List visible files in the current directory

> ls

List visible files in a subdirectory

> ls subdir

List visible files with full path in the parent directory

> ls -f ..

List Rust files

> ls *.rs

List files and directories whose name do not contain 'bar'

> ls -s | where name !~ bar

List all dirs in your home directory

> ls -a ~ | where type == dir

List all dirs in your home directory which have not been modified in 7 days

> ls -as ~ | where type == dir and modified < ((date now) - 7day)

List given paths and show directories themselves

> ['/path/to/directory' '/path/to/file'] | each {|| ls -D $in } | flatten