I/O Redirection

4 views
Skip to first unread message

hq4...@gmail.com

unread,
Apr 5, 2005, 8:04:37 PM4/5/05
to bash...@googlegroups.com
COMMAND_OUTPUT >
# Redirect stdout to a file.
# Creates the file if not present, otherwise overwrites it.

ls -lR > dir-tree.list
# Creates a file containing a listing of the directory tree.

: > filename
# The > truncates file "filename" to zero length.
# If file not present, creates zero-length file (same effect as
'touch').
# The : serves as a dummy placeholder, producing no output.

> filename
# The > truncates file "filename" to zero length.
# If file not present, creates zero-length file (same effect as
'touch').
# (Same result as ": >", above, but this does not work with some
shells.)

COMMAND_OUTPUT >>
# Redirect stdout to a file.
# Creates the file if not present, otherwise appends to it.


# Single-line redirection commands (affect only the line they are
on):
#
--------------------------------------------------------------------

1>filename
# Redirect stdout to file "filename".
1>>filename
# Redirect and append stdout to file "filename".
2>filename
# Redirect stderr to file "filename".
2>>filename
# Redirect and append stderr to file "filename".
&>filename
# Redirect both stdout and stderr to file "filename".


#==============================================================================
# Redirecting stdout, one line at a time.
LOGFILE=script.log

echo "This statement is sent to the log file, \"$LOGFILE\"."
1>$LOGFILE
echo "This statement is appended to \"$LOGFILE\"." 1>>$LOGFILE
echo "This statement is also appended to \"$LOGFILE\"."
1>>$LOGFILE
echo "This statement is echoed to stdout, and will not appear in
\"$LOGFILE\"."
# These redirection commands automatically "reset" after each
line.

# Redirecting stderr, one line at a time.
ERRORFILE=script.errors

bad_command1 2>$ERRORFILE # Error message sent to
$ERRORFILE.
bad_command2 2>>$ERRORFILE # Error message appended to
$ERRORFILE.
bad_command3 # Error message echoed to
stderr,
#+ and does not appear in
$ERRORFILE.
# These redirection commands also automatically "reset" after
each line.

#==============================================================================

2>&1
# Redirects stderr to stdout.
# Error messages get sent to same place as standard output.

i>&j
# Redirects file descriptor i to j.
# All output of file pointed to by i gets sent to file pointed to
by j.

>&j
# Redirects, by default, file descriptor 1 (stdout) to j.
# All stdout gets sent to file pointed to by j.

0< FILENAME
< FILENAME
# Accept input from a file.
# Companion command to ">", and often used in combination with
it.
#
# grep search-word <filename


[j]<>filename
# Open file "filename" for reading and writing, and assign file
descriptor "j" to it.
# If "filename" does not exist, create it.
# If file descriptor "j" is not specified, default to fd 0,
stdin.
#
# An application of this is writing at a specified place in a
file.
echo 1234567890 > File # Write string to "File".
exec 3<> File # Open "File" and assign fd 3 to it.
read -n 4 <&3 # Read only 4 characters.
echo -n . >&3 # Write a decimal point there.
exec 3>&- # Close fd 3.
cat File # ==> 1234.67890
# Random access, by golly.

|
# Pipe.
# General purpose process and command chaining tool.
# Similar to ">", but more general in effect.
# Useful for chaining commands, scripts, files, and programs
together.
cat *.txt | sort | uniq > result-file
# Sorts the output of all the .txt files and deletes duplicate
lines,
# finally saves results to "result-file".


===========================================================================
http://www.tldp.org/LDP/abs/html/io-redirection.html#IOREDIRREF
===========================================================================

Reply all
Reply to author
Forward
0 new messages