21

On linux at least, and I think windows/dos shell too you can use > to "pipe" output into a file. Something like:

cat myfile.txt > mightAsWellCP.txt

What is that piece of syntax sugar called? This is a "pipe": | so what do we call the > and < (and << and >> while were at it.)

5

4 Answers 4

16

I usually refer to all four variations (< << > >>) as a "redirect" when speaking to folks that I know will understand.

0
20

> is used to redirect output.

$ echo "hello" > file.txt

< is used to redirect input.

$ cat < file.txt

Output:

hello

>> is used to append output to the end of the file.

$ echo "world!" >> file.txt

Output:

hello
world!

<< (called "here document") is a file literal or input stream literal.

$ cat << EOF >> file.txt

Output:

>

Here you can type whatever you want and it can be multi-line. It ends when you type EOF. (We used EOF in our example but you can use something else instead.)

> linux
> is
> EOF

Output:

hello
world!
linux
is

<<< (called "here string") is the same as << but takes only one "word" (i.e., string).

$ cat <<< great! >> file.txt

Output:

hello
world!
linux
is
great!

Note that we could have used $ cat <<< great! | tee file.txt instead of $ cat <<< great! >> file.txt, but that would do something different.

7

They're symbols for redirection of input/output.
Quick runthrough on the differences between the redirection syntax commands

3

When speaking a command-line, I usually pronounce the symbols by their function.

  • > "output to"
  • >> "append to"
  • < "input from"
  • | "pipe"

So when reading your example out loud:

cat myfile.txt > mightAsWellCP.txt

I would pronounce as "cat myfile dot T X T output to might as well C P dot T X T".

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.