ls - Unix, Linux Command



NAME

ls - list directory contents.

SYNOPSIS

  • ls [OPTION]... [FILE]...
  • DESCRIPTION

    ls List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort is specified. Mandatory arguments to long options are mandatory for short options too.

    Options

    Tag Description
    -a, --all do not ignore entries starting with .
    -A, --almost-all do not list implied . and ..
    --author with -l, print the author of each file
    -b, --escape print octal escapes for nongraphic characters
    --block-size=SIZE use SIZE-byte blocks
    -B, --ignore-backups do 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
    --color[=WHEN] control whether color is used to distinguish file types. WHEN may be `never', `always', or `auto'
    -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, enable -aU, disable -ls --color
    -F, --classify append indicator (one of */=>@|) to entries
    --file-type likewise, except do not append `*'
    --format=WORD across -x, commas -m, horizontal -x, long -l, single-column -1,verbose -l, vertical -C
    --full-time like -l --time-style=full-iso
    -g like -l, but do not list owner
    --group-directories-first group directories before files.augment with a --sort option, but any use of --sort=none (-U) disables grouping
    -G, --no-group in a long listing, don't print group names
    -h, --human-readable with -l, print sizes in human readable format (e.g., 1K 234M 2G)
    --si likewise, but use powers of 1000 not 1024
    -H, --dereference-command-line follow symbolic links listed on the command line
    --dereference-command-line-symlink-to-dir follow each command line symbolic link that points to a directory
    --hide=PATTERN do not list implied entries matching shell PATTERN (overridden by -a or -A)
    --indicator-style=WORD append indicator with style WORD to entry names: none (default),slash (-p), file-type (--file-type), classify (-F)
    -i, --inode print the index number of each file
    -I, --ignore=PATTERN do not list implied entries matching shell PATTERN
    -k like --block-size=1K
    -l use a long listing 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 fill width with a comma separated list of entries
    -n, --numeric-uid-gid like -l, but list numeric user and group IDs
    -N, --literal print raw entry names (don't treat e.g. control characters specially)
    -o like -l, but do not list group information
    -p, --indicator-style=slash append / indicator to directories
    -q, --hide-control-chars print ? instead of non graphic characters
    --show-control-chars show non graphic characters as-is (default unless program is `ls' and output is a terminal)
    -Q, --quote-name enclose entry names in double quotes
    --quoting-style=WORD use quoting style WORD for entry names: literal, locale, shell, shell-always, c, escape
    -r, --reverse reverse order while sorting
    -R, --recursive list subdirectories recursively
    -s, --size print the allocated size of each file, in blocks
    -S sort by file size
    --sort=WORD sort by WORD instead of name: none -U, extension -X, size -S, time -t, version -v
    --time=WORD with -l, show time as WORD instead of modification time: atime-u, access -u, use -u, ctime -c, or status -c; use specified time as sort key if --sort=time
    -time-style=STYLE with -l, show times using style STYLE: full-iso, long-iso, iso,locale, +FORMAT. FORMAT is interpreted like `date'; if FORMAT is FORMAT1FORMAT2, FORMAT1 applies to non-recent files and FORMAT2 to recent files; if STYLE is prefixed with `posix-', STYLE takes effect only outside the POSIX locale
    -t sort by modification time
    -T, --tabsize=COLS assume tab stops at each COLS 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, --width=COLS assume screen width instead of current value
    -x list entries by lines instead of by columns
    -X sort alphabetically by entry extension
    -Z, --context print any SELinux security context of each file
    -l list one file per line
    --help display this help and exit
    --version output version information and exit

    EXAMPLES

    Example-1:

    To list all files of current directory:

    $ ls

    output:

    # ls
    bin   dev  home        lib    lost+found  mnt  proc  run   srv  tmp  var
    boot  etc  initrd.img  lib64  media       opt  root  sbin  sys  usr  vmlinuz

    Example-2:

    To display one file per line:
     
    $ ls -1

    output:

    # ls -1
    bin
    boot
    dev
    etc
    home
    initrd.img
    lib
    lib64
    lost+found
    media
    mnt
    opt
    proc
    root
    run
    sbin
    srv
    sys
    tmp
    usr
    var
    vmlinuz

    Example-3:

    To display all information about files/directories:

    $ ls -l

    output:

    # ls -l
    total 81
    drwxr-xr-x   2 root root  4096 Dec 28 05:25 bin
    drwxr-xr-x   4 root root  1024 Dec 28 05:27 boot
    drwxr-xr-x  17 root root  4320 Jan  7 17:57 dev
    drwxr-xr-x  97 root root  4096 Jan  7 18:18 etc
    drwxr-xr-x   4 root root  4096 Jan  6 12:43 home
    lrwxrwxrwx   1 root root    33 Dec 28 05:08 initrd.img -> boot/initrd.img-3.19.0-25-generic
    drwxr-xr-x  23 root root  4096 Dec 28 05:25 lib
    drwxr-xr-x   2 root root  4096 Dec 28 05:07 lib64
    drwx------   2 root root 16384 Dec 28 05:07 lost+found
    drwxr-xr-x   3 root root  4096 Dec 28 05:07 media
    drwxr-xr-x   2 root root  4096 Apr 11  2014 mnt
    drwxr-xr-x   2 root root  4096 Aug  5  2015 opt
    dr-xr-xr-x 167 root root     0 Jan  7 17:57 proc
    drwx------   2 root root  4096 Jan  7 18:12 root
    drwxr-xr-x  19 root root   680 Jan  7 20:41 run
    drwxr-xr-x   2 root root 12288 Dec 28 05:28 sbin
    drwxr-xr-x   2 root root  4096 Aug  5  2015 srv
    dr-xr-xr-x  13 root root     0 Jan  7 17:57 sys
    drwxrwxrwt   2 root root  4096 Jan  7 20:17 tmp
    drwxr-xr-x  10 root root  4096 Dec 28 05:07 usr
    drwxr-xr-x  12 root root  4096 Dec 28 05:25 var
    lrwxrwxrwx   1 root root    30 Dec 28 05:08 vmlinuz -> boot/vmlinuz-3.19.0-25-generic

    Example-4:

    To display directory information:
     
    $ ls -ld /etc

    output:

    # ls -ld /etc
    drwxr-xr-x 97 root root 4096 Jan  7 18:18 /etc

    Example-5:

    To order files based on last modified time:

    $ ls -lt

    output:

    # ls -lt
    total 81
    dr-xr-xr-x  13 root root     0 Jan  7 20:44 sys
    drwxr-xr-x  19 root root   680 Jan  7 20:41 run
    drwxrwxrwt   2 root root  4096 Jan  7 20:17 tmp
    drwxr-xr-x  97 root root  4096 Jan  7 18:18 etc
    drwx------   2 root root  4096 Jan  7 18:12 root
    drwxr-xr-x  17 root root  4320 Jan  7 17:57 dev
    dr-xr-xr-x 166 root root     0 Jan  7 17:57 proc
    drwxr-xr-x   4 root root  4096 Jan  6 12:43 home
    drwxr-xr-x   2 root root 12288 Dec 28 05:28 sbin
    drwxr-xr-x   4 root root  1024 Dec 28 05:27 boot
    drwxr-xr-x  12 root root  4096 Dec 28 05:25 var
    drwxr-xr-x   2 root root  4096 Dec 28 05:25 bin
    drwxr-xr-x  23 root root  4096 Dec 28 05:25 lib
    lrwxrwxrwx   1 root root    30 Dec 28 05:08 vmlinuz -> boot/vmlinuz-3.19.0-25-generic
    lrwxrwxrwx   1 root root    33 Dec 28 05:08 initrd.img -> boot/initrd.img-3.19.0-25-generic
    drwxr-xr-x   3 root root  4096 Dec 28 05:07 media
    drwxr-xr-x  10 root root  4096 Dec 28 05:07 usr
    drwxr-xr-x   2 root root  4096 Dec 28 05:07 lib64
    drwx------   2 root root 16384 Dec 28 05:07 lost+found
    drwxr-xr-x   2 root root  4096 Aug  5  2015 opt
    drwxr-xr-x   2 root root  4096 Aug  5  2015 srv
    drwxr-xr-x   2 root root  4096 Apr 11  2014 mnt

    Example-6:

    To order files based on last modified time(In Reverse Order):

    $ ls -ltr

    output:

    # ls -ltr
    total 81
    drwxr-xr-x   2 root root  4096 Apr 11  2014 mnt
    drwxr-xr-x   2 root root  4096 Aug  5  2015 srv
    drwxr-xr-x   2 root root  4096 Aug  5  2015 opt
    drwx------   2 root root 16384 Dec 28 05:07 lost+found
    drwxr-xr-x   2 root root  4096 Dec 28 05:07 lib64
    drwxr-xr-x  10 root root  4096 Dec 28 05:07 usr
    drwxr-xr-x   3 root root  4096 Dec 28 05:07 media
    lrwxrwxrwx   1 root root    33 Dec 28 05:08 initrd.img -> boot/initrd.img-3.19.0-25-generic
    lrwxrwxrwx   1 root root    30 Dec 28 05:08 vmlinuz -> boot/vmlinuz-3.19.0-25-generic
    drwxr-xr-x  23 root root  4096 Dec 28 05:25 lib
    drwxr-xr-x   2 root root  4096 Dec 28 05:25 bin
    drwxr-xr-x  12 root root  4096 Dec 28 05:25 var
    drwxr-xr-x   4 root root  1024 Dec 28 05:27 boot
    drwxr-xr-x   2 root root 12288 Dec 28 05:28 sbin
    drwxr-xr-x   4 root root  4096 Jan  6 12:43 home
    dr-xr-xr-x 166 root root     0 Jan  7 17:57 proc
    drwxr-xr-x  17 root root  4320 Jan  7 17:57 dev
    drwx------   2 root root  4096 Jan  7 18:12 root
    drwxr-xr-x  97 root root  4096 Jan  7 18:18 etc
    drwxrwxrwt   2 root root  4096 Jan  7 20:17 tmp
    drwxr-xr-x  19 root root   680 Jan  7 20:41 run
    dr-xr-xr-x  13 root root     0 Jan  7 20:44 sys

    Example-7:

    To display hidden files:

    $ ls -a

    It will show all the files including the ‘.’ (current directory) and ‘..’

    (parent directory). To show the hidden files, but not the ‘.’ (current directory) and ‘..’ (parent directory), use option -A.

    $ ls -A

    output:

    # ls -a
    .  ..  .bash_history  .bash_logout  .bashrc  .cache  .profile  test1.sh  test.sh  .viminfo

    # ls -A
    .bash_history  .bash_logout  .bashrc  .cache  .profile  test1.sh  test.sh  .viminfo

    Example-8:

    To display files recursively:

    $ ls -R /etc/network

    output:

    # ls -R /etc/network/
    /etc/network/:
    if-down.d  if-post-down.d  if-pre-up.d  if-up.d  interfaces  interfaces.d  run

    /etc/network/if-down.d:
    resolvconf  upstart  wpasupplicant

    /etc/network/if-post-down.d:
    bridge  wireless-tools  wpasupplicant

    /etc/network/if-pre-up.d:
    bridge  ethtool  wireless-tools  wpasupplicant

    /etc/network/if-up.d:
    000resolvconf  ethtool  ntpdate  openssh-server  upstart  wpasupplicant

    /etc/network/interfaces.d:

    Example-9:

    To display file inode number:

    $ ls -i /etc/wgetrc

    output:

    # ls -i /etc/wgetrc
    526576 /etc/wgetrc

    Example-10:

    To display file UID and GID:
     
    $ ls -n ~/.bash_logout

    output:

    $ ls -n .bash_logout
    -rw-r--r-- 1 1000 1000 220 Dec 28 05:28 .bash_logout

    Example-11:

    Visual Classification of Files With Special Characters:

    $ ls -F

    Instead of doing the ‘ls -l’ and then the checking for the first character to 
    determine the type of file. You can use -F which classifies the file with different 
    special character for different kind of files.
    

    output:

    # ls -F /
    bin/  boot/  dev/  etc/  home/  initrd.img@  lib/  lib64/  lost+found/  media/  mnt/  opt/  proc/  root/  run/  sbin/  srv/  sys/  tmp/  usr/  var/  vmlinuz@

    Advertisements