ls command

The ls command is one of the more basic commands in Linux. It is designed to list names and features of files and directories. It can be used for a single file or as many as all files and folders in a selected set of directories.

Command: ls
Synopsis: ls [option]… [file]…

Below is a list of the options that can be used with the ls command. You can use more than one at a time, making the command more efficient to your needs.

Option Long Name Description
-a –all Lists all files including those that begin with .
-A –almost-all Lists all files except . and ..
-b –escape print octal escapes for nongraphic characters
-B –ignore-backups does not list implied entries ending with ~
-c with -lt: sort by, and show, ctime (time of last modification of file status information) with -l: show ctime and sort by name otherwise: sort by ctime
-C list entries by columns
-d –directory list directory entries instead of contents, and do not dereference symbolic links
-D –dired generate output designed for Emacsâ dired mode
-f do not sort
-F –classify append indicator (one of */=>@|) to entries
-g Works like -l (long list) but does not display owner.
-G –no-group Works like -l (long list) but does not group names.
-h –human-readable when used with -l (long list), prints sizes in human readable format (e.g., 1K 234M 2G)
-H –dereference-command-line follow symbolic links listed on the command line
-i –inode print the index number of each file
-I –ignore=PATTERN do not list implied entries matching shell PATTERN
-k –block-size=1K Displays entry size in kilobytes (rounded up). Long name allows to set block size.
-l Displays entries in a long list format.
-L –dereference when showing file information for a symbolic link, show information for the file the link references rather than for the link itself
-m fills the width of the terminal with a comma separated list of entries
-n –numeric-uid-gid like -l (long list), but lists numeric user and group IDs instead of name
-N –literal prints raw entry names (does not treat e.g. control characters special)
-o like -l, but do not list group information
-p –indicator-style=slash appends a / indicator to directories
-q –hide-control-chars print ? instead of non graphic characters
-Q –quote-name display entries enclosed in double quotes
-r –reverse reverse order while sorting
-R –recursive lists all subdirectories recursively
-s –size print the allocated size of each file, in blocks
-S displays entries sorted by filesize
-t sort by modification time
-T –tabsize=COLS assume tab stops at each column instead of 8
-u with -lt: sort by, and show, access time. with -l: show access time and sort by name. otherwise: sort by access time
-U do not sort; list entries in directory order
-v natural sort of (version) numbers within text
-w assume screen width instead of current value
-x list entries by lines instead of by columns
-X sort alphabetically by entry extension
-1 list one file per line
-Z Display security context so it fits on most displays. Displays only mode, user, group, security context and file name.


The ls base command

This example displays the base command with no switches or parameters. Note the files and folders are displayed in a row. Directories display in blue and have a trailing slash.

./ ../ error_log images/ index.php testfile.txt

Using the long list option

One of the more common switches, the long listing (-l) displays much more data than the base command. It displays the permissions, the owner, group, size, date last modified, and the name of the file.

 $# ls -l total 32 drwxr-xr-x  3 root    root     4096 Jun  3 10:19 ./ drwxr-x--- 25 root    root     4096 Jun  3 10:16 ../ -rw-r--r--  1 root    root     12523 May  5 13:29 error_log drwxr-xr-x  2 root    root     4096 Jun  3 10:19 images/ -rw-r--r--  1 root    root       52 May  5 13:29 index.php -rw-r--r--  1 root    root        0 Jun  3 10:15 testfile.txt 

Was this article helpful? Let us know!