How to Create a File in Linux from Terminal Window? [Closed]

What's the easiest way to create a file in Linux terminal?

1

Depending on what you want the file to contain:

  • touch /path/to/file for an empty file
  • somecommand > /path/to/file for a file containing the output of some command.

      eg: grep --help > randomtext.txt
          echo "This is some text" > randomtext.txt
    
  • nano /path/to/file or vi /path/to/file (or any other editor emacs,gedit etc)
    It either opens the existing one for editing or creates & opens the empty file to enter, if it doesn't exist

14

Use touch

touch filename

Create the file using cat

$ cat > myfile.txt

Now, just type whatever you want in the file:

Hello World!

CTRL-D to save and exit

5

There are several possible solutions:

Create an empty file

touch file

>file

echo -n > file

printf '' > file

The echo version will work only if your version of echo supports the -n switch to suppress newlines. This is a non-standard addition. The other examples will all work in a POSIX shell.

Create a file containing a newline and nothing else

echo '' > file

printf '\n' > file

This is a valid "text file" because it ends in a newline.

Write text into a file

"$EDITOR" file

echo 'text' > file

cat > file <<END \
text
END

printf 'text\n' > file

These are equivalent. The $EDITOR command assumes that you have an interactive text editor defined in the EDITOR environment variable and that you interactively enter equivalent text. The cat version presumes a literal newline after the \ and after each other line. Other than that these will all work in a POSIX shell.

Of course there are many other methods of writing and creating files, too.

Also, create an empty file:

touch myfile.txt

You can use touch command, as the others said:

touch filename

To write on file on command line, you can use echo or printf:

echo "Foo" > filename
printf "Foo" > filename

Maybe you can have problems with permissions. If you are getting the following error: bash: filename: Permission denied, you need to use sudo bash -c 'echo "Foo" > filename', as described here:

1

How to create a text file on Linux:

  • Using touch to create a text file: $ touch NewFile.txt
  • Using cat to create a new file: $ cat NewFile.txt
    The file is created, but it's empty and still waiting for the input from the user. You can type any text into the terminal, and once done CTRL-D will close it, or CTRL-C will escape you out.
  • Simply using > to create a text file: $ > NewFile.txt
  • Lastly, we can use any text editor name and then create the file, such as:
    nano MyNewFile vi MyNewFile NameOfTheEditor NewFileName

haha! it's easy! try this:

$ touch filename
1

1st method

echo -n > filename.txt

2nd method

> filename.txt

3rd method

touch filename.txt

To view the file contents

vi filename.txt
2

This will create an empty file with the current timestamp

touch filename
touch filename

for permission denied error use sudo command as:

sudo touch filename

Simple as that :

> filename

You can use the touch command to create a new empty file.

I like the nano command-line editor (text):

nano filename

In case you guys are trying to create a new file, but it says: 'File does not exist', it's simply because you are also accessing a directory, which does not exist yet. You have to create all non existent directories first, using the mkdir /path/to/dir command.

To create a blank file with ownership and permissions using install.

sudo install -v -oUSER -gGROUP -m640 /dev/null newFile.txt
3

One of the easiest way and quick

$ vim filename
David Miller

David Miller

Executive Financial & Market Analyst

David Miller brings 15 years of experience in global economics, personal finance strategy, and market dynamics. He specializes in turning complex economic trends into actionable insights for everyday readers.

Share this article
Twitter Facebook Pinterest