Common File Manipulation Commands
mkdir- make a directory
touch- make a file
mv- move a file/directory
cp- copy a file/directory
rm- remove a file/directory
sort- sort text files
grep- search text files
echo- write text to standard output
cat- read and concatenate files
>- redirect output to a file
>>- redirect and append output to a file
|- pipe output to another command
mkdir - Make a directory
Make a directory using
mkdir, which accepts the name of the new directory as an argument. Note that when naming directories, using hyphens or underscores is recommended when separating words (don't use spaces).
cd into our new
living_room Look around with
ls -la. What do you see?
touch - Create a file
Creating a file can be done by using the
touch command. Then, the file can be opened in Atom for editing.
touch books.txt subl books.txt
Add a few books, copy and paste the section below so we all have some books in common, and save the file. Make sure the books you add are in the same format:
Carroll, Lewis:Through the Looking-Glass Shakespeare, William:Hamlet Bartlett, John:Familiar Quotations Mill, John :On Nature London, Jack:John Barleycorn Bunyan, John:Pilgrim's Progress, The Defoe, Daniel:Robinson Crusoe Mill, John Stuart:System of Logic, A Milton, John:Paradise Lost Johnson, Samuel:Lives of the Poets Shakespeare, William:Julius Caesar Mill, John Stuart:On Liberty Bunyan, John:Saved by Grace
ls -la again. Do you see the
cat - Reading and concatenating files
A quick way to read files without opening Atom is by using
If we had another file, we could provide additional filenames as arguments in order to concatenate files together.
cat books.txt schedule.txt
echo - Writing text to standard output
echo is a command that echoes (outputs) what we give to it as arguments.
echo "This bookshelf flexes under the weight of the books it holds."
At first glance, it seems too simple. Why would we need this command? Well every command that we run in the terminal has an input, an output, an error output, and arguments/options. Since
echo produces output, we can change where this output will go!
>> - File Redirection
Let's try redirecting the output from echo to a file.
echo "This bookshelf flexes under the weight of the books it holds" > bookshelf.txt
Using the closing angle bracket
> in this way is called redirection.
We are saying:
- Run echo with this string as an argument
- Take the output, and put it in a new file called
ls again, and
cat our new file.
Two angle brackets
>> works similarly, but it appends the string to the end of the file.
echo "It does not break, it does its job admirably" >> bookshelf.txt
cat bookshelf.txt to see the result
| - Piping
Let's look back at
books.txt. Look at the file contents. Notice that the list of books is unsorted. We need to organize this using the
We can use the
| character to pipe output into another command, specifically the sort command. This is different from file redirection because we're directing output to the input of a command, not a file.
cat books.txt | sort
Note that if we look at
books.txt, nothing changed. We read the contents of
books.txt and piped the contents into sort, but the output was never saved. Luckily, we can combine piping with file redirection.
cat books.txt | sort > sorted_books.txt
Look around again to see how the room has changed.
grep - Searching files
There are dozens of powerful tools we can leverage using pipes. One of the ones you'll be using the most is
cat books.txt | grep Mil
See how we filtered out just the lines that contain Mil? Try grepping for something else. There are also additional options that can be passed to both
Adapted from http://en.flossmanuals.net/command-line/piping/
mv - Moving files
Now that we have our books sorted, we really don't need our unsorted list of books.
mv stands for move, and that's how we move files and folders from place to place.
mv sorted_books.txt books.txt
cp - Copying files
To copy files, we use the
cp command. Let's try adding a second bookshelf.
cp bookshelf.txt second_bookshelf.txt
Note that if we copy a folder, we'll need to use an additional option,
To remove files, we use the
rm command. Let's go back and remove that second bookshelf.
Note that if we remove a folder, we'll need to use an additional option,
-r and sometimes
IMPORTANT NOTE: This does not send files to the trash can or recycle bin. Your files are gone forever, so be careful when using this command!