- Unix Commands Reference
- Unix Commands - Home
ls - Unix, Linux Command
NAME
ls - list directory contents.
SYNOPSIS
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: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: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: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@