This tutorial is essentially the same as one developed at the Mathematics Department at University of Utah. Only some very minor changes have been made.
% ls fred1 fred2 fred3 ch1 ch2 ch3 foo.c bar.c %This is really not badly organized: the files fred1, etc. are letters to fred, the files ch1, etc. chapters of a book, and foo.c, bar.c are C programs. Nonetheless, we decide that it is time to get organized, with one directory per project.
Please create files with the names listed above in order to be able to complete this
lesson.
You can use the touch
command, the cat
command or an editor
such as vi.
Their content is irrelevant -- even empty files are sufficient.
We create a new directory using the mkdir command ( m ake d irectory).
% mkdir letters % ls fred1 fred2 fred3 ch1 ch2 ch3 foo.c bar.c letters
Notice that the directory letters shows up in the listing. If you are not sure what is a file and what is a directory, try this:
% ls -F fred1 fred2 fred3 ch1 ch2 ch3 foo.c bar.c letters/
Notice that letters is displayed somewhat differently.
Now we move the letters into the directory letters using the mv command ( m o v e).
% mv fred1 fred2 fred3 letters % ls ch1 ch2 ch3 foo.c bar.c lettersIf we want to check that letters really contains the files it should, we do this:
% ls letters fred1 fred2 fred3There is, by the way, a useful shortcut:
% mv fred* letters
Here the character * matches any sequence of characters, including the null string. Thus files named fred, fred101, and freddy would all be moved into letters.
% cat letters/fred1
This command displays the contents of the file fred1 , which is in the directory letters. Here are some other ways of doing the same thing:
% cat letters/fred1 % more letters/fred1 % emacs letters/fred1We could even do this:
% cat l*f*1
Sometimes it is better to work inside the directory letters. To do it we use the cd command ( ch hange d irectory).
% cd letters % ls fred1 fred2 fred3
The letters are there, as they chould be. To go back to our home directory we do this:
% cdWe check that our home directory contains what it should.
% ls ch1 ch2 ch3 foo.c bar.c letters
Now we make directories for the other files and move them into the right places:
% mkdir book; mv ch* book % mkdir cprogs; mv *.c cprogs % ls -F book/ cprogs/ letters/ % ls book ch1 ch2 ch3 %
Sometimes in moving from one directory to another we lose track of where we are. To find out what the current directory is, use the pwd command ( p rint w orking d irectory).
% pwd jeremy % cd book % pwd jeremy/book %
To remove a directory we first remove all the file in it, then remove the directory with rmdir ( r emove d irectory).
% pwd jeremy % cd letters % pwd jeremy/letters % rm * % cd .. % rmdir letters
The command rm * removes all files in the current directory. The command cd .. changes the current directory to the parent of the current one. In this case, it changes us from jeremy/letters to jeremy . Remember that jeremy/letters is a path , as is jeremy/letters/fred1. The latter is the path which starts with Jeremy's home directory and ends with the file fred1.