One of the first commands I learned in Linux was
ls. Knowing what’s in a directory where a file on your system resides is important. Being able to see and modify not just some but all of the files is also important.
My first LInux cheat sheet was the One Page Linux Manual, which was released in1999 and became my go-to reference. I taped it over my desk and referred to it often as I began to explore Linux. Listing files with
ls -l is introduced on the first page, at the bottom of the first column.
Later, I would learn other iterations of this most basic command. Through the
ls command, I began to learn about the complexity of the Linux file permissions and what was mine and what required root or sudo permission to change. I became very comfortable on the command line over time, and while I still use
ls -l to find files in the directory, I frequently use
ls -al so I can see hidden files that might need to be changed, like configuration files.
According to an article by Eric Fischer about the
ls command in the Linux Documentation Project, the command's roots go back to the
listf command on MIT’s Compatible Time Sharing System in 1961. When CTSS was replaced by Multics, the command became
list, with switches like
list -all. According to Wikipedia,
ls appeared in the original version of AT&T Unix. The
ls command we use today on Linux systems comes from the GNU Core Utilities.
Most of the time, I use only a couple of iterations of the command. Looking inside a directory with
ls -al is how I generally use the command, but there are many other options that you should be familiar with.
$ ls -l provides a simple list of the directory:
Using the man pages of my Fedora 28 system, I find that there are many other options to
ls, all of which provide interesting and useful information about the Linux file system. By entering
man ls at the command prompt, we can begin to explore some of the other options:
To sort the directory by file sizes, use
To list the contents in reverse order, use
To list contents by columns, use
ls -al provides a list of all the files in the same directory:
Here are some additional options that I find useful and interesting:
- List only the .txt files in the directory:
- List by file size:
- Sort by time and date:
- Sort by extension:
- Sort by file size:
- Long format with file size:
- List only the .txt files in a directory:
To generate a directory list in the specified format and send it to a file for later viewing, enter
ls -al > mydirectorylist. Finally, one of the more exotic commands I found is
ls -R, which provides a recursive list of all the directories on your computer and their contents.
For a complete list of the all the iterations of the
ls command, refer to the GNU Core Utilities.