Redirecting outputs in UNIX

From Antalya
Revision as of 13:39, 27 November 2020 by Kgf (talk | contribs) (Created page with "You can make the output of a command go to a file by using ‘>’ ls > example.dat This command will copy the result of the ‘ls’ command to the file called example.dat ....")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

You can make the output of a command go to a file by using ‘>’

ls > example.dat

This command will copy the result of the ‘ls’ command to the file called example.dat . But this command will overwrite example.dat when you execute it.

You can use ‘>>’ to concatenate the output to an existing file.

echo “This is a header” > example.dat
ls >> example.dat

In the above script the ‘echo’ command will create a file, and the ‘ls’ line is going to add to the end of the example.dat.

The other trick is to pipe the output of one command to the input of another one. This way mutiple commands can be chained. The pipe operator is ‘|’. See for example:

du -sk * | sort -nr | head -10 

The first command ‘du’ is disk usage. The parameters tell it to make a summary (-s) list in kilobytes (-k) and all files/directories in the current working directory (*). The output is sent to the command ‘sort’ which as the name suggests sorts the text output. We tell it to sort numerically (-n) and in reverse order (-r). Then we use the ‘head’ command to display the first few lines of a text file. In this case we tell it to list 10 lines (-10).