Efficiently Adding Multiple Lines to Files in Linux


In the world of Linux, managing files is a daily task for many users, especially those in the field of web development. Today, we’ll explore efficient methods to add multiple lines to a file, catering to different scenarios, including when elevated privileges are required.

When Elevated Privileges are Needed

Often, you might need to write to files that require higher privileges. This is common when editing system files or files owned by other users. Here are two effective methods to accomplish this:

Possibility 1: Using `echo` and `sudo tee`

The `tee` command is incredibly useful when working with protected files. It reads from the standard input and writes both to the standard output and files. This command becomes powerful when combined with `sudo`, allowing you to write to files that require superuser privileges.

Here’s a simple way to append a single line:

echo "line 1" | sudo tee -a greetings.txt > /dev/null

In this command, `echo` sends “line 1” to `tee`, which appends it to `greetings.txt`. The `-a` flag is crucial, as it ensures the line is appended rather than overwriting the file. The redirection to `/dev/null` is used to suppress the output on the terminal.

Possibility 2: Using `sudo tee` with a Here Document

For adding multiple lines, a Here Document is an elegant solution. It allows you to write multi-line strings using a command-line interface.

sudo tee -a greetings.txt > /dev/null <<EOT
line 1
line 2

This method uses a Here Document (`<

Another Approach: Using `tee` without sudo

In cases where you don’t need elevated privileges, such as modifying user-owned files, `tee` remains a useful tool.

Modifying SSH Configuration Example

Consider the scenario where you want to append multiple lines to your SSH configuration file (`~/.ssh/config`). The process is similar, but without `sudo`:

tee -a ~/.ssh/config << EOT
Host localhost
  ForwardAgent yes

Here, the `tee -a` command appends the specified configuration directly to your SSH config file. As before, the Here Document simplifies the addition of multiple lines.


Understanding the nuances of file manipulation in Linux is crucial for efficient system management. The `tee` command, combined with Here Documents and appropriate use of privileges, offers a versatile solution for various scenarios. Whether you’re a seasoned system administrator or a curious developer, these techniques are valuable additions to your Linux toolkit.