What are Redirections in Bash? Example and how-to

Bash Liste Des Attaques Ovh

About

This article talks about shell redirections in the Bash shell.

Through redirection you can direct the input and output of a command to and from other files and programs, and chain commands together in a pipeline.

Example

Redirect output to stderr for all command that comes next

exec 1>&2

The operator >&2 means redirect the address of file descriptor 1 (stdout) to the address of file descriptor 2 (stderr)

Discard any output

mycommand >/dev/null 2>&1

Operator

>

cat leftFile.txt > rightFile.txt

“Greater than” takes the standard output of the command on the left, and redirects it to the file on the right.

>>

cat myFile.txt >> rightFile.txt

>> takes the standard output of the command on the left and appends (adds) it to the file on the right.

<

cat < rightFile.txt

< takes the standard input from the file on the right and inputs it into the program on the left.

|

cat rightFile.txt | wc

where:

| is a pipe. The pipe takes the standard output of the command on the left, and pipes it as standard input to the command on the right.

<<< (3 arrows)

This is a Bash variant, this is an expansion of the here document declaration

The word is expanded and supplied to the command on its standard input.

<<< word

Operators

The fredirection operators may precede or appear anywhere within a simple command or may follow a command.

Order of redirections

Redirections are processed in the order they appear, from left to right.

Note that the order of redirections is significant. For example, the command

ls > dirlist 2>&1

directs both standard output (file descriptor 1) and standard error (file descriptor 2) to the file dirlist, while the command

ls 2>&1 > dirlist

directs only the standard output to file dirlist, because the standard error was made a copy of the standard output before the standard output was redirected to dirlist.

File Descriptor

Each redirection that may be preceded by a file descriptor number may instead be preceded by a word of the form {varname}. In this case, for each redirection operator except >&- and <&-, the shell will allocate a file descriptor greater than 10 and assign it to {varname}. If >&- or <&- is preceded by {varname}, the value of varname defines the file descriptor to close.

Redirections using file descriptors greater than 9 should be used with care, as they may conflict with file descriptors the shell uses internally.

Standard stream

file descriptor Name
0 /dev/stdin
1 /dev/stdout (Default)
2 /dev/stderr

In the following descriptions,

  • if the file descriptor number is omitted, and the first character of the redirection operator is ‘<’, the redirection refers to the standard input (file descriptor 0).
  • If the first character of the redirection operator is ‘>’, the redirection refers to the standard output (file descriptor 1).

Create a symbolic link to redirect a log to stdin/stderr with ln

ln -sf /dev/stdout /var/log/nginx/access.log 
ln -sf /dev/stderr /var/log/nginx/error.log

Redirection Target

The word following the redirection operator in the following descriptions, unless otherwise noted, is subjected to:

  • brace expansion,
  • tilde expansion,
  • parameter expansion,
  • command substitution,
  • arithmetic expansion,
  • quote removal,
  • filename expansion,
  • and word splitting.

If it expands to more than one word, Bash reports an error.

Bash handles several filenames specially when they are used in redirections, as described in the following table:

/dev/fd/fd If fd is a valid integer, file descriptor fd is duplicated.
/dev/stdin File descriptor 0 is duplicated.
/dev/stdout File descriptor 1 is duplicated.
/dev/stderr File descriptor 2 is duplicated.
/dev/tcp/host/port If host is a valid hostname or Internet address, and port is an integer port number or service name, Bash attempts to open a TCP connection to the corresponding socket.
/dev/udp/host/port If host is a valid hostname or Internet address, and port is an integer port number or service name, Bash attempts to open a UDP connection to the corresponding socket.

A failure to open or create a file causes the redirection to fail.

Documentation / Reference





Discover More
Bash Liste Des Attaques Ovh
Bash - (Builtin|Intern|System|Reserved|Shell) variable name

Reserved variable name are named that have a special meaning for the bash shell. PS1 defines the shell's command-line prompt. HOME defines the home directory for a user. PATH defines a list...
Bash Liste Des Attaques Ovh
Bash - Colon (:) Builtin command

The : builtin command does nothing beyond: expanding its arguments and performing any specified redirections. A zero exit code is returned.
Bash Liste Des Attaques Ovh
Bash - Function

A shell function is an object that: is called like a simple command and executes a compound command with a new set of positional parameters. ie a function definition is itself a compound command ...
Bash Liste Des Attaques Ovh
Bash - Here Documents

in Bash. Here document in Bash is implemented through redirection. A redirection instructs the shell to read input from the current source until a line containing only word (with no trailing blanks)...
Bash Liste Des Attaques Ovh
Bash - Set (of Bash Options)

The set builtin command can be specify shell option. When options are specified, they set or unset shell attributes. Without options, the name and value of each shell variable are displayed in a...
Bash Liste Des Attaques Ovh
Bash - Standard input (stdin)

operations that applied only to the bash|bash shell See The input redirection operator takes the content of a file and send it as standard input Example with read that take a stand Create...
Command Line Windows Process Explorer
Process - Command (Command line)

A OS command is a line of text that will create a process instance from a program (also known as image) . A command line is just a one line of text: with a path to a executable file and arguments...
Bash Liste Des Attaques Ovh
Sh - Special Characters

special character See also: special Parameters the point: >, >>, |, < : the tilde (~): the user directory home $?: the exist status $$: the PID of the parent process ...
Card Puncher Data Processing
What are Shell Redirections? of Standard Streams

Before a command is executed, its input (standard input stream) and output (standard output stream and standard error stream) may be redirected using redirection operators by the command line interpreter....
Bash Liste Des Attaques Ovh
What is the Ampersand (&) in the Bash Shell ? ie the Asynchronous, Parallel control operator

The Ampersand (&) is: control operator that separates command in a list and the shell: executes the command in the background in a subshell. does not wait for the command to finish, returns...



Share this page:
Follow us:
Task Runner