How to List Files and Folders in Your Directory: A Beginner's Guide to Using ls ?

 

One of the most basic Linux commands is "ls". It lists file and directory names and attributes, providing information on files, directories, and their attributes.

Syntax for ls command:

ls [/directory/folder/path]

Here are the best examples of using the ls command with different options:

List all files and directories of a current directory:

ls

List all files and directories which includes hidden ones:

ls -a

List files in long format with detailed information:

ls -l

List files in a single column:

ls -1

List files with human-readable file sizes:

ls -lh

List files sorted by modification time, newest first:

ls -lt

List directories only, not their contents:

ls -d */

List all files and directories recursively:

ls -R

List files in reverse order:

ls -r

List files with indicators appended to their names (e.g., / for directories, * for executables):

ls -F

List files without sorting:

ls -f

List files with their inode numbers:

ls -i

List files sorted by size:

ls -S

List files sorted by extension:

ls -X

List files with SELinux security context information:

ls -Z

Here are some common variations and options of the ls command in Linux. You can use more than one at a time, making the command more efficient for your needs.

Option  Long Name Description
-a   –all Lists all files and directories, including hidden ones (with those which start with a dot).  
 -A –almost-all  Lists all files and directories except . and ... 
-b –escape  Prints non-printable characters in file names as escape sequences. 
 -B  –ignore-backups  do not list backup files (those ending with a tilde ~ character).
-c    used for inode modification time (sorting) 
 -C   Lists files in columns(sorted vertically). 
-d  –directory  list directories (not their contents) 
 -D  –dired Shows the type of each file (long listing) 
 -f   Lists files unsorted (in the order they appear in the directory). 
 -F –classify  Appends indicators like / to directories and * to executables. 
 -g   Similar to -l, but does not display the owner of each file. 
-G   –no-group Enables colorized output only if the terminal is used 
-h   –human-readable  Prints file sizes in a human-readable format (e.g., KB, MB, GB).
-H  –dereference-command-line  Follows symbolic links specified on the command line.
-i  –inode   Prints the inode number of each file.
-I  –ignore=PATTERN  Excludes files matching the specified pattern. 
-k  –block-size=1K  Prints file sizes in kilobytes. 
-l   Displays a long listing format with detailed information about files. 
-L  –dereference Follows symbolic links and lists information about the target file. 
-m    Lists files as a comma-separated list. 
-n –numeric-uid-gid   Similar to -l, but displays user and group IDs numerically.
-N  –literal   Lists ACLs (Access Control Lists) and SElinux security context.
 -o    Similar to -l, but does not display group information.
 -p –indicator-style=slash  Appends a slash / to directories. 
 -q  –hide-control-chars  Prints non-printable characters in file names as question marks.
-Q –quote-name  Quotes all file names to prevent interpretation of special characters. 
-r  –reverse  Reverses the order of sorting. 
-R   –recursive Recursively lists subdirectories encountered. 
-s  –size  Displays the size of each file in blocks. 
-S    Sorts files by size, with the largest first. 
-t    Sorts files by modification time, with the newest first. 
-T  –tabsize=COLS  Specifies a timeout value for network operations. 
-u    Uses access time for sorting and displaying. (Can be used with -lt & - l) with -lt: sort by and show access time and with -l: show access time and sort by name.  
-U     Lists files unsorted, the same as -f.
-v     Natural sorting of (version) numbers within text.
 -w    Specifies the width of the output.
-x     Lists files horizontally.
 -X    Sorts files alphabetically by extension.
 -1   Forces output to be one entry per line. 
-Z    Displays SELinux security context information. 

 

That's it! You should now be familiar with the fundamentals of using the Linux ls command. For future reference, we advise referring to our other Linux command articles.

Was this answer helpful? 0 Users Found This Useful (0 Votes)