ls command is used to list information of files in respected directory.
LS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
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.
-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 C-style escapes for nongraphic characters
--block-size=SIZE
scale sizes by SIZE before printing them; e.g., '--block-size=M' prints sizes in units of 1,048,576 bytes; see SIZE format below
-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, newest first
-C list entries by columns
--color[=WHEN]
colorize the output; WHEN can be 'never', 'auto', or 'always' (the default); more info below
-d, --directory
list directories themselves, not their contents
-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;
-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, --kibibytes
default to 1024-byte blocks for disk usage
-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 nongraphic characters
--show-control-chars
show nongraphic characters as-is (the 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), size (-S), time (-t), version (-v), extension (-X)
--time=WORD
with -l, show time as WORD instead of default modification time: atime or access or use (-u) ctime or status (-c); also 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, or +FORMAT; FORMAT is interpreted like in 'date'; if FORMAT is FORMAT1<newline>FORMAT2, then 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, newest first
-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
-1 list one file per line
SELinux options:
--lcontext
Display security context. Enable -l. Lines will probably be too wide for most displays.
-Z, --context
Display security context so it fits on most displays. Displays only mode, user, group, security context and file name.
--scontext
Display only security context and file name.
--help display this help and exit
--version
output version information and exit
Lets start this tutorial.
mkdir sial
cd sial
touch ravi
touch mukesh
touch -t "201912081126" nikhil
touch .blank
As we have created a folder named sial and inside that we created four files ravi, mukesh, nikhil and .blank. You can see that for nikhil file I have specified date and time to year 2019, month December, date 08 and time created 11:26.
Lets use ls command
ls sial
[11:04][[email protected] ~]# ls sial
mukesh nikhil ravi
In the above command you can see we can see all the files created but not the .blank file. It is a hidden file but we can list it too using the command below
ls -a sial
[11:05][[email protected] ~]# ls -a sial
. .. .blank mukesh nikhil ravi
Above you can see all the files we created. Now lets try some other command
ls -la sial
[11:06][[email protected] ~]# ls -la sial
total 4
drwxr-xr-x 2 root root 60 Apr 14 11:02 .
dr-xr-x---. 12 root root 4096 Apr 14 11:01 ..
-rw-r--r-- 1 root root 0 Apr 14 11:02 .blank
-rw-r--r-- 1 root root 0 Apr 14 11:01 mukesh
-rw-r--r-- 1 root root 0 Dec 8 11:26 nikhil
-rw-r--r-- 1 root root 0 Apr 14 11:01 ravi
Using the above command we can see many information of directory and files. Like number of files in directory is 4 shows as total 4. We can also see what is the permission of the files, who owns it as in my example it is owned by root. What is size of the file and when it was created.
ls -lah sial
[11:10][[email protected] ~]# ls -lah sial
total 4.0K
drwxr-xr-x 2 root root 60 Apr 14 11:02 .
dr-xr-x---. 12 root root 4.0K Apr 14 11:09 ..
-rw-r--r-- 1 root root 0 Apr 14 11:02 .blank
-rw-r--r-- 1 root root 0 Apr 14 11:01 mukesh
-rw-r--r-- 1 root root 0 Dec 8 11:26 nikhil
-rw-r--r-- 1 root root 0 Apr 14 11:01 ravi
We added ‘h’ to the command that means show the file size in human readable format.
ls -laht sial
[11:11][[email protected] ~]# ls -laht sial
total 4.0K
dr-xr-x---. 12 root root 4.0K Apr 14 11:09 ..
drwxr-xr-x 2 root root 60 Apr 14 11:02 .
-rw-r--r-- 1 root root 0 Apr 14 11:02 .blank
-rw-r--r-- 1 root root 0 Apr 14 11:01 mukesh
-rw-r--r-- 1 root root 0 Apr 14 11:01 ravi
-rw-r--r-- 1 root root 0 Dec 8 11:26 nikhil
This command ‘t’ helps to sort the output of command in newest first order. You can see April 14th files are in first order and then December 8th.
ls -lahtr sial
[11:14][[email protected] ~]# ls -lahtr sial
total 4.0K
-rw-r--r-- 1 root root 0 Dec 8 11:26 nikhil
-rw-r--r-- 1 root root 0 Apr 14 11:01 ravi
-rw-r--r-- 1 root root 0 Apr 14 11:01 mukesh
-rw-r--r-- 1 root root 0 Apr 14 11:02 .blank
drwxr-xr-x 2 root root 60 Apr 14 11:02 .
dr-xr-x---. 12 root root 4.0K Apr 14 11:09 ..
‘r’ is used to sort the order in reverse order. That means older first and then newest.
This was the small tutorial on how to use ls command.