Ls Explained

ls
Author:coreutils: Richard Stallman and David MacKenzie
Developer:Various open-source and commercial developers
Programming Language:C
Operating System:Multics, Unix, Unix-like, Plan 9, Inferno, MSX-DOS
Genre:Command
License:coreutils

GPLv3+
BusyBox: GPL-2.0-only
Toybox: 0BSD
Plan 9: MIT License

In computing, ls is a command to list computer files and directories in Unix and Unix-like operating systems. It is specified by POSIX and the Single UNIX Specification. It is available in the EFI shell,[1] as a separate package for Microsoft Windows as part of the UnxUtils collection of native Win32 ports of common GNU Unix-like utilities,[2] or as part of ASCII's MSX-DOS2 Tools for MSX-DOS version 2.[3]

The numerical computing environments MATLAB and GNU Octave include an ls function with similar functionality.[4] [5]

In other environments, such as DOS, OS/2, and Microsoft Windows, similar functionality is provided by the [[dir (command)|dir]] command.

History

An ls utility appeared in the first version of AT&T UNIX, the name inherited from a similar command in Multics also named 'ls', short for the word "list".[6] [7] [8] is part of the X/Open Portability Guide since issue 2 of 1987. It was inherited into the first version of POSIX.1 and the Single Unix Specification.

Behavior

Unix and Unix-like operating systems maintain the idea of a working directory. When invoked without arguments, ls lists the files in the working directory. If a directory is specified as an argument, the files in that directory are listed; if a file is specified, that file is listed. Multiple directories and files may be specified.

In many Unix-like systems, names starting with a dot (.) are hidden. Examples are ., which refers to the working directory, and .., which refers to its parent directory. Hidden names are not shown by default. With -a, all names, including all hidden names, are shown. Using -A shows all names, including hidden names, except for . and ... File names specified explicitly (for example ls .secret) are always listed.

Without options, ls displays names only.The different implementations have different options, but common options include:

Additional options controlling how items are displayed include:

It may be possible to highlight different types of items with different colors. This is an area where implementations differ:

When the option to use color to indicate item types is selected, the output might look like:

-rw-r--r-- 1 tsmitt nregion 26650 Dec 20 11:16

audio.ogg brw-r--r-- 1 tsmitt nregion 64 Jan 27 05:52 bd-block-device crw-r--r-- 1 tsmitt nregion 255 Jan 26 13:57 cd-character-device -rw-r--r-- 1 tsmitt nregion 290 Jan 26 14:08 image.png drwxrwxr-x 2 tsmitt nregion 48 Jan 26 11:28 di-directory -rwxrwxr-x 1 tsmitt nregion 29 Jan 26 14:03 ex-executable -rw-r--r-- 1 tsmitt nregion 0 Dec 20 09:39 fi-regular-file lrwxrwxrwx 1 tsmitt nregion 3 Jan 26 11:44 ln-soft-link -> dir lrwxrwxrwx 1 tsmitt nregion 15 Dec 20 10:57 or-orphan-link -> mi-missing-link drwxr-xrwx 2 tsmitt nregion 4096 Dec 20 10:58 ow-other-writeable-dir prw-r--r-- 1 tsmitt nregion 0 Jan 26 11:50 pi-pipe -rwxr-sr-x 1 tsmitt nregion 0 Dec 20 11:05 sg-setgid srw-rw-rw- 1 tsmitt nregion 0 Jan 26 12:00 so-socket drwxr-xr-t 2 tsmitt nregion 4096 Dec 20 10:58 st-sticky-dir -rwsr-xr-x 1 tsmitt nregion 0 Dec 20 11:09 su-setuid -rw-r--r-- 1 tsmitt nregion 10240 Dec 20 11:12 compressed.gz drwxrwxrwt 2 tsmitt nregion 4096 Dec 20 11:10 tw-sticky-other-writeable-dir

Sample usage

The following example demonstrates the output of the command:$ ls -ldrwxr--r-- 1 fjones editors 4096 Mar 2 12:52 drafts-rw-r--r-- 3 fjones editors 30405 Mar 2 12:52 edition-32-r-xr-xr-x 1 fjones bookkeepers 8460 Jan 16 2022 edit.shEach line shows the d (directory) or - (file) indicator, Unix file permission notation, number of hard links (1 or 3), the file's owner, the file's group, the file size, the modification date/time, and the file name. In the working directory, the owner fjones has a directory named drafts, a regular file named edition-32, and an executable named edit.sh which is "old", i.e. modified more than 6 months ago as indicated by the display of the year.┌─────────── file (not a directory)|┌─────────── read-write (no execution) permissions for the owner|│ ┌───────── read-only permissions for the group|│ │ ┌─────── read-only permissions for others|│ │ │ ┌── number of hard links|│ │ │ │ ┌── owner|│ │ │ │ │ ┌── user group|│ │ │ │ │ │ ┌── file size in bytes|│ │ │ │ │ │ │ ┌── last modified on|│ │ │ │ │ │ │ │ ┌── filename-rw-r--r-- 3 fjones editors 30405 Mar 2 12:52 edition-32

See also

External links

Notes and References

  1. Web site: EFI Shells and Scripting . deviated . https://web.archive.org/web/20130927203229/http://software.intel.com/en-us/articles/efi-shells-and-scripting/ . September 27, 2013 . 2013-09-25 . Intel.
  2. Web site: Native Win32 ports of some GNU utilities. unxutils.sourceforge.net.
  3. Web site: MSX-DOS2 Tools User's Manual - MSX-DOS2 TOOLS ユーザーズマニュアル. April 1, 1993. Internet Archive.
  4. Web site: List folder contents - MATLAB ls.
  5. Web site: Function Reference: Ls . Octave Forge.
  6. Web site: 14 February 1985 . Multics manual page for ls or list command .
  7. Web site: A Brief History of the 'ls' command . Eric . Fischer . The Linux Documentation Project.
  8. Web site: Multics programmer's manual - Commands and active functions . 397 .
  9. Web site: (decode_switches): -h and -H override output units. . coreutils.git . 1997-12-31 .
  10. Web site: [base] Log of /stable/10/bin/ls/ls.c ]. 2001-12-28.
  11. Web site: General output formatting (GNU Coreutils 9.1) . 2023-01-07 . www.gnu.org.
  12. Web site: FreeBSD Man Pages - ls . June 23, 2013 .