The cp
command also allows us (with the use of a command-line option) to copy entire directories. Use man cp
to see how the -R
or -r
options let you copy a directory recursively.
So far we have covered listing the contents of directories and moving/copying/deleting either files and/or directories. Now we will quickly cover how you can look at files. The less command lets you view (but not edit) text files. We will use the echo command to put some text in a file and then view it:
ubuntu@:~/Learning_unix$ echo "Call me Ishmael."
Call me Ishmael.
ubuntu@:~/Learning_unix$ echo "Call me Ishmael." > opening_lines.txt
ubuntu@:~/Learning_unix$ ls
opening_lines.txt
ubuntu@:~/Learning_unix$ less opening_lines.txt
On its own, echo
isn’t a very exciting Unix command. It just echoes text back to the screen. But we can redirect that text into an output file by using the >
symbol. This allows for something called file redirection.
Careful when using file redirection (>), it will overwrite any existing file of the same name
When you are using less, you can bring up a page of help commands by pressing h
, scroll forward a page by pressing space
, or go forward or backwards one line at a time by pressing j
or k
. To exit less, press q
(for quit). The less
program also does about a million other useful things (including text searching).
Let’s add another line to the file:
ubuntu@:~/Learning_unix$ echo "The primroses were over." >> opening_lines.txt
ubuntu@:~/Learning_unix$ cat opening_lines.txt
Call me Ishmael.
The primroses were over.
Notice that we use >>
and not just >
. This operator will append to a file. If we only used >
, we would end up overwriting the file. The cat command displays the contents of the file (or files) and then returns you to the command line. Unlike less
you have no control on how you view that text (or what you do with it). It is a very simple, but sometimes useful, command. You can use cat
to quickly combine multiple files or, if you wanted to, make a copy of an existing file:
cat opening_lines.txt > file_copy.txt
ubuntu@:~/Learning_unix$ ls
opening_lines.txt
ubuntu@:~/Learning_unix$ ls -l
total 4
-rw-rw-r-- 1 ubuntu ubuntu 42 Jun 15 04:13 opening_lines.txt
ubuntu@:~/Learning_unix$ wc opening_lines.txt
2 7 42 opening_lines.txt
ubuntu@:~/Learning_unix$ wc -l opening_lines.txt
2 opening_lines.txt
The ls -l
option shows us a long listing, which includes the size of the file in bytes (in this case ‘42’). Another way of finding this out is by using Unix’s wc command (word count). By default this tells you many lines, words, and characters are in a specified file (or files), but you can use command-line options to give you just one of those statistics (in this case we count lines with wc -l
).
Nano is a lightweight editor installed on most Unix systems. There are many more powerful editors (such as ‘emacs’ and ‘vi’), but these have steep learning curves. Nano is very simple. You can edit (or create) files by typing:
nano opening_lines.txt
You should see the following appear in your terminal:
The bottom of the nano window shows you a list of simple commands which are all accessible by typing ‘Control’ plus a letter. E.g. Control + X exits the program.