How to use the ls command in Linux
Created
The ls command lists files and directories within the file system, and shows detailed information about them. It is a part of the GNU core utilities package which is installed on all Linux distributions.
List all files, including important dotfiles (hidden files), use:
all files
ls -a
To show a long format list of files
ls -al
-rw-------. 1 root root 1206 Jun 28 2019 anaconda-ks.cfg -rw------- 1 root root 11467 May 5 16:13 .bash_history -rw-r--r--. 1 root root 18 Jun 13 2019 .bash_logout
print sizes like 1K 234M 2G etc.
ls -lh
sort by time, newest first
ls -lht
sort them by size
ls -lhaS
drwxr-xr-x 840 root root 26K Nov 25 23:43 node_modules -rw-r--r-- 1 root root 1.1M Jun 8 23:46 package-lock.json
The syntax for the ls command is as follows:
Usage:
ls [OPTIONS] [FILES]
OPTIONS:
-a, --alldo not ignore entries starting with .-A, --almost-alldo not list implied . and ..--authorwith -l, print the author of each file-b, --escapeprint C-style escapes for nongraphic characters--block-size=SIZEwith -l, scale sizes by SIZE when printing them; e.g., '--block-size=M'; see SIZE format below-B, --ignore-backupsdo not list implied entries ending with ~-cwith -lt: sort by, and show, ctime (time of last modifica‐tion of file status information); with -l: show ctime and sort by name; otherwise: sort by ctime, newest first-Clist entries by columns--color[=WHEN]colorize the output; WHEN can be 'always' (default if omit‐ ted), 'auto', or 'never'; more info below-d, --directorylist directories themselves, not their contents-D, --diredgenerate output designed for Emacs' dired mode-fdo not sort, enable -aU, disable -ls --color-F, --classifyappend indicator (one of */=>@|) to entries--file-typelikewise, except do not append '*'--format=WORDacross -x, commas -m, horizontal -x, long -l, single-column -1, verbose -l, vertical -C--full-timelike -l --time-style=full-iso-glike -l, but do not list owner--group-directories-firstgroup directories before files; can be augmented with a --sort option, but any use of --sort=none (-U) disables grouping-G, --no-groupin a long listing, don't print group names-h, --human-readablewith -l and -s, print sizes like 1K 234M 2G etc.--silikewise, but use powers of 1000 not 1024-H, --dereference-command-linefollow symbolic links listed on the command line--dereference-command-line-symlink-to-dirfollow each command line symbolic link that points to a directory--hide=PATTERNdo not list implied entries matching shell PATTERN (over‐ ridden by -a or -A)--hyperlink[=WHEN]hyperlink file names; WHEN can be 'always' (default if omitted), 'auto', or 'never'--indicator-style=WORDappend indicator with style WORD to entry names: none (default), slash (-p), file-type (--file-type), classify (-F)-i, --inodeprint the index number of each file-I, --ignore=PATTERNdo not list implied entries matching shell PATTERN-k, --kibibytesdefault to 1024-byte blocks for disk usage; used only with -s and per directory totals-luse a long listing format-L, --dereferencewhen showing file information for a symbolic link, show information for the file the link references rather than for the link itself-mfill width with a comma separated list of entries-n, --numeric-uid-gidlike -l, but list numeric user and group IDs-N, --literalprint entry names without quoting-olike -l, but do not list group information-p, --indicator-style=slashappend / indicator to directories-q, --hide-control-charsprint ? instead of nongraphic characters--show-control-charsshow nongraphic characters as-is (the default, unless pro‐ gram is 'ls' and output is a terminal)-Q, --quote-nameenclose entry names in double quotes--quoting-style=WORDuse quoting style WORD for entry names: literal, locale, shell, shell-always, shell-escape, shell-escape-always, c, escape (overrides QUOTING_STYLE environment variable)-r, --reversereverse order while sorting-R, --recursivelist subdirectories recursively-s, --sizeprint the allocated size of each file, in blocks-Ssort by file size, largest first--sort=WORDsort by WORD instead of name: none (-U), size (-S), time (-t), version (-v), extension (-X)--time=WORDchange the default of using modification times; access time (-u): atime, access, use; change time (-c): ctime, status; birth time: birth, creation; with -l, WORD determines which time to show; with --sort=time, sort by WORD (newest first)--time-style=TIME_STYLEtime/date format with -l; see TIME_STYLE below-tsort by time, newest first; see --time-T, --tabsize=COLSassume tab stops at each COLS instead of 8-uwith -lt: sort by, and show, access time; with -l: showaccess time and sort by name; otherwise: sort by access time, newest first-Udo not sort; list entries in directory order-vnatural sort of (version) numbers within text-w, --width=COLSset output width to COLS. 0 means no limit-xlist entries by lines instead of by columns-Xsort alphabetically by entry extension-Z, --contextprint any security context of each file-llist one file per line. Avoid '\n' with -q or -b--helpdisplay this help and exit--versionoutput version information and exit