This subchapter looks at ls, a UNIX (and Linux) command.
ls is used to list files.
The ls command was described in the first UNIX book, UNIX Programmers Manual, by Ken Thompson and Dennis Ritchie, published November 3, 1971.
list directory contents
Use the ls command to list the contents of the current working directory.
$ ls Desktop Movies Send registration Documents Music Sites Downloads Pictures Library Public $
PC-DOS equivalent
ls -la is the UNIX equivalent of the MS-DOS or PC-DOS command DIR. You can add the PC-DOS equivalent to your shell session with the alias command. To make the change permanent, add the following line to the .bashrc file in your home directory. Note that if you add this PC-DOS/MS-DOS equivalent, only add the all upper case version, because the lower case type is an important UNIX command that you will also need.
$ alias DIR="ls -la"
ls -la | less is the UNIX equivalent of the MS-DOS or PC-DOS command DIR /P.
list all
Type ls with the -A option to get a list of all entries other than . (single dot) and .. (double dot).
$ ls -A
list with hints
Type ls with the -F option to have special indicators for special files.
A slash / will be added after every pathname that is a directory. An asterisk * will be added after every file that is executable (including scripts). An at sign @ will be displayed after each symbolic link. An equals sign = will be displayed after each socket. A percent sign % will be displayed after each whiteout. A vertical bar | will be displayed after each item than is a FIFO.
ls -F is a builtin command in csh.
hidden files
The -a option will give a list of all files, including hidden files.
$ ls -a
gotchas
Do not use the output of ls in a BASH for loop.
$ for i in $(ls *.mp3); do # Wrong! $ command $i # Wrong! $ done # Wrong! $ for i in $(ls *.mp3) # Wrong! $ for i in `ls *.mp3` # Wrong!
If any file name has spaces in it, then it will be word split. So, the MP3 for Alex Clairs Too Close (number four song on his The Lateness of the Hour album) might be 04 Too Close. In that case, your command would run on the files 04, Too, and Close, rather than 04 Too Close. Additional errors likely to follow. Listen to the song Too Close for free.
Double quote wont work either because that will cause the entire output of the ls command to be treated as a single item. Your loop will run once on all of the file names conactenated together.
$ for i in "$(ls *.mp3)"; # Wrong!
The solution is to run your loop without even using ls, relying on BASHs filename expansion. Dont forget to check for the possibility that there are no qualifying files in the current directory.
$ for i in *.mp3; do # Wrong! $ [[ -f "$i" ]] || continue $ command "$i" $ done
In June 2009, Ken Milberg named this command as one of the Top 50 universal UNIX commands at this web page Top 50 Universal INIX commands. Note that this web page requires agreeing to be spammed before you can read it.
free music player coding example
Coding example: I am making heavily documented and explained open source code for a method to play music for free almost any song, no subscription fees, no download costs, no advertisements, all completely legal. This is done by building a front-end to YouTube (which checks the copyright permissions for you).
Create your own copy from the original source code/ (presented for learning programming).
Work on this project is very slow because I am homeless. I am available for work if someone can provide an indoor place to work in Costa Mesa, California, electricity, internet connections, a flat raised working surface (such as a table or desk), a sitting device (such as a chair or stool), and a fully functional reasonably modern used computer. Im already homeless, so you dont need to pay me (and I understand how much business people hate the minimum wage law). Just give me a chance to work.
Building a free downloadable text book on computer programming for university, college, community college, and high school classes in computer programming.
If you like the idea of this project, then please donate some money.
send donations to: Milo
PO Box 1361
Tustin, California 92781
At the time I am homeless. This greatly interferes with my ability to create this project, which can help nearly 20 million U.S. college students and more than 150 million students world-wide. I am looking for 30 rich people or corporations willing to donate $10 a month to my church so that the church can provide a place indoors for me to continue work. If you want to donate, please see help project. Thanks much.
Supporting the entire project:
If you have a business or organization that can support the entire cost of this project, please contact Pr Ntr Kmt (my church)
UNIX used as a generic term unless specifically used as a trademark (such as in the phrase UNIX certified). UNIX is a registered trademark in the United States and other countries, licensed exclusively through X/Open Company Ltd.
Names and logos of various OSs are trademarks of their respective owners.