I'm a bit of a UNIX noob, but I'm trying to run the cat command to make a simple text file and it works great, however cat is never exited after making the file. For instance, I type cat > ~/mytextfile.txt and hit enter, the file is created but my cursor remains on a blank line.

  • 3
    cat is most often used for dumping the contents of one file into another, ex. cat file1 > file2 or feeding a file to a pipe, ex. cat file | somecommand. If you simply want to create an empty file, use the command touch. If you wish to create a new file with a few simple words, or append a few lines to an existing file, echo is a common solution. – Darth Android Jun 2 '10 at 11:20
  • 1
    @Darth - You should write your comment as an answer instead. – Nifle Jun 2 '10 at 11:56
  • "feeding a file to a pipe, ex. cat file | somecommand" 'cat'ting in this context, though commonly done, is completely useless. 'somecommand <file' is equivalent and runs one less process. The only way it might make sense would be to concatenate several files into a single input stream for 'somecommand' – JRobert Jun 2 '10 at 21:56

You're telling cat to send nothing to a file. Use touch (as mentioned) instead.

| improve this answer | |

You have to send an EOF (^D) character on the standard input to tell cat to stop.

| improve this answer | |
  • I see, how can I get ^D? Or what is the shortcut or whatever? – skylerl Jun 2 '10 at 11:17
  • 1
    It is the key combination ctrl + d. – ayaz Jun 2 '10 at 11:29
  • 1
    Worth noting that lots of *nix command line apps (all the ones that read input from stdin) work the same way. – Chris Nava Jun 2 '10 at 17:45

In my MAC I need to send EOF (^D) twice.


cat > /tmp/mypassword

Then press FN + Control + D twice.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.