11 Ways To Create a File in Linux

$ touch file.txt

Learning to create a file in Linux using many ways is a recommendable step toward speeding up the use of the operating system. For example, you may want to

  1. Only create an empty file,
  2. Create a file and open it, or
  3. Create and write into the new file using one command.

Whatever way you want to create a file in Linux, this tutorial will help you out. It explains how to create a file in Linux using seven commands in 11 ways. They are the touch, echo, cat, printf, gedit, mv, and fallocate commands.

Create an empty file

Assume you want to create a file on the terminal and not open or write into it. You can use the touch, echo, and printf commands or the greater-than operator.

Use the touch command

touch is the most familiar command to create a file in the Linux terminal. It takes the file name as an input.

Assume you want to create an empty file called file.txt. First, let’s ensure the file does not exist using the ls command.

ls

OR

To view hidden files
ls -la

Next, append the file name to the touch command.

touch file.txt

Lastly, rerun the ls command to confirm the file creation.

ls

You can also check the file’s contents using the cat command.

cat file.txt

The system returns nothing, meaning the new file is empty.

touch file.txt

If the system throws an error, permission denied, introduce sudo before the target command.

sudo touch file.txt

Use the echo command

The echo command is used in various shell scripts and programming languages to reveal the contents of a file. Besides, you can use it in Linux to create an empty file. All you do is combine it with the greater-than operator. Using the n-switch enables the new file to support new lines.

echo -n > file2.txt

Here, we tell the system to create an empty file called file2.txt. The file should support new lines because we have specified the n-switch using minus n, -n.

Use the greater-than operator

Apart from combining the greater-than operator with other commands, you can use it independently to create an empty file. All you do is append the target file’s name to the command. You can then start writing the contents of the file and exit using Ctrl+C.

> file3.txt

You can then confirm the file’s creation using the ls command, and if it is empty with the cat command.

ls

cat file3.txt

Sure. We have three files, including the file3.txt file. And the new file is empty as we hoped.

greaterthan file3.txt

Let’s see how to create an empty file using the printf command.

Use the printf command

Like the echo command, the printf command helps show the result of computations on the console in programming languages like C. In Linux, we can use it to create an empty file by supplying it with an empty string, greater-than operator, and file name.

printf '' > file4.txt

The two single quotes, '', denote an empty string. A string is a collection of characters. A character is a letter. For instance, you can store some letters, w, o, r, d, in between single or double quotation marks.

string_name = 'word'

When the inside of the quotations holds zero characters, we refer to the container as an empty string. So, in the printf command above, we created a new file called file4.txt and stored nothing, ''.

printf file4.txt

Create an empty file and open it

Use a terminal editor

Apart from only creating a file, you can create the file and open it using Linux text editors like Nano, Vi, and Vim. You primarily use the editors to open and modify a file. You do that by specifying the file to open.

The editor then checks if the given file exists. If it does not exist, the editor creates it. With that knowledge in mind, we can explicitly create empty files before opening them.

For example, assume we want to create a Python file, app.py, and open it using the Vim editor. You can do that by opening the terminal and typing the file name after the editor’s name.

vim app.py

A screen pops up.

app.py

You can exit the Vim interface by typing :q! or pressing the esc key followed by :q!

OR

:q for quitting without saving

OR

:wq for saving and quitting a written file.

Note: the new file may not be created (nor saved) if you don’t write something into it. You can check that using the ls and cat commands as we did in section 1 above.
ls
cat app.py

ls app.py

Now that you know how to create an empty file and even open it, let’s move further and write into the new file.

Create a file and write into it

Another way to use a file in Linux is to create and write into it. Besides the echo and printf commands discussed in section 1 of this tutorial, you can apply the cat and mv commands as explained in this section.

Use the echo command

You can create a file and write some words by attaching the file contents, the greater-than operator, and the file name to the echo command.

For instance, let’s create file5.txt.

echo 'I am creating file5.txt and appending this string to it' > file5.txt

And confirm the file’s creation.

ls

Yes, it was created! Does it have some content? Let’s check using the cat command.

cat file5.txt

file5

Correct, the file has the content we created it with. Here are alternative ways to create and write into a file.

Use the printf command

This time around, we will put some characters between the quotation marks.

printf 'A string goes here' > file6.txt

Then, check the result.

ls
cat file6.txt

Use the cat command

cat is one of the overworked commands in Linux. Apart from creating files, it checks file contents, concatenates the file with another, or append more contents into the new file.

Since we have seen how to check file contents using the cat command, we will now use it to create and write into files.

Create a file

Create the target file using the cat command with the greater-than operator and the file name.

cat > file7.txt

The cursor enters a new line. The new file welcomes you to write. Put some content in the new file, then press the ctrl and d keys simultaneously to save the content and exit the file.

file7.txt

Concatenate files

Concatenating files means combining a file with another or others. Assume you have two files: f1 and f2. You want to join f2‘s contents with f1‘s into a new file, f3. You can do that using the cat command as shown below.

Let’s create f1 and f2 then add some contents into them.

echo 'content1' > f1
echo 'content2' > f2

Now create f3 with content1 and content2 as follows.

cat f1 f2 > f3

Check f3‘s existence and its contents.

ls
cat f3

You should get an output like the one shown on this screenshot:

echo content

Note: A single greater-than operator rewrites file contents, whereas the double greater-than operator appends content.

Use the mv command

The mv, short for a move, command relocates file contents or renames the file. If the destination file does not exist, the command creates it.

For example, let’s create a new file called file8.txt by moving f3’s content into it.

mv f3 file8.txt

Then confirm the file’s creation.

ls
cat file8.txt
ls

We now have file8.txt with contents: content1 content2. Note: the creation of file8.txt resulted in the deletion of f3.

Create a File Using a GUI

What if you want to create a file using a GUI? That is where the GNOME editor comes in.

Use the gedit command

The GNOME editor, gedit, found in the desktop environment, helps to create and edit a text file graphically.

gedit anotherFile.txt

Use the fallocate command

Sometimes, you handle massive files, and you want to specify each file’s size during its creation. You can do that using the fallocate command with (A) the -l flag, (B) file size, and (C) the file name.

fallocate -l 1G lastFile.c

Conclusion

This tutorial taught you how to create files in Linux using seven commands in eleven ways. You can comfortably create an empty file, make a file and open or put some contents into it using the terminal or a GUI.

It would be best to familiarize yourself with the commands, as shown in this tutorial.

0 Shares:
Subscribe
Notify of
guest
Receive notifications when your comment receives a reply. (Optional)
Your username will link to your website. (Optional)
0 Comments
Inline Feedbacks
View all comments
You May Also Like