ls is a command specified by POSIX and the Single UNIX Specification, and is thus implemented in Unix and Unix-like operating systems. ls, an abbreviation of list, lists files.
History
An ls utility first appeared in Version 5 AT&T UNIX. Its name derives from a similar command in Multics which meant "list segments". Today, two popular versions of ls include the Free Software Foundation's (part of the GNU coreutils package) and the one released by various BSD distributions, such as FreeBSD, OpenBSD, NetBSD, and Apple Computer's Darwin. Both are free software and open source.
Behaviour
Unix and Unix-like operating systems maintain the idea of a current working directory, that is, where one is currently positioned in the hierarchy of directories.
ls when invoked without any arguments, lists the files in the current working directory. A directory that is not the current working directory can be specified and ls will list the files there.
Without options, ls displays files in a bare format. This bare format however makes it difficult to establish the type, permissions, and size of the files. The most common options to reveal this information are:
-
-l: long format, displaying permissions, number of hard links owner, group, size, date, and filename
- -F appends a character revealing the nature of a file, for example, * for an executable, or / for a directory. Regular files have no suffix.
-
--color (for GNU ls) behaves akin to -F but highlights different types of files with different colors.
ls has a large number of other options, as can be discovered in the man page. It is one of the most frequently used tools, and is virtually the de-facto interface to the file system via the command line.
Sample usage
$ pwd
/home/fred
$ ls -l
drwxr--r-- 1 fred editors 4096 drafts
-rw-r--r-- 1 fred editors 30405 edition-32
-r-xr-xr-x 1 fred fred 8460 edit
$ ls -F
drafts/
edition-32
edit*
Here we can see that the user fred has a directory named drafts, a regular file called edition-32, and an executable named edit in his home directory. ls uses a special permissions notation that describes what the user, group, and "world" (everyone else) can do to the file. The first character of the permissions line indicates type (d signifies a directory, for example), and the rest of the line is split into blocks of three characters each, with the presence of a r, w, and x signifying the ability to read, write, or execute respectively. The first block represents the permissions for the user, the second for the group, and the third for world. For example, the user fred can read and write the edition-32 file, but not execute it; members of the group editors can only read this file and not write or execute it, as can everyone else.
See also
-
dir—the command in DOS that lists files, similar to ls.
External links
-
ls at the LinuxQuestions.org wiki.
-
ls.c source code of the AT&T Version 5 UNIX source code.
man pages
Last updated: 05-13-2005 07:56:04