如何在Linux终端窗口中创建文件?[关闭]


Answers:


576

根据您希望文件包含的内容:

  • touch /path/to/file 对于一个空文件
  • somecommand > /path/to/file 用于包含某些命令输出的文件。

      eg: grep --help > randomtext.txt
          echo "This is some text" > randomtext.txt
    
  • nano /path/to/filevi /path/to/file(或any other editor emacs,gedit etc
    它打开现有文件进行编辑,或者创建并打开空文件以输入(如果不存在)


51
另外,printf "some long message\nwith newlines\n" > file。祝你们好运。
Shellter

1
UNIX不是命令行环境,而是一系列(非常不同的)操作系统。也就是说:是的,这应该适用于大多数Unices
Eugen Rieck '02

4
touch将在UNIX中工作,因为它是标准工具。该somecommand示例将工作,因为它使用标准语法。该nano示例可能无法正常运行,因为nano可能未安装名为的编辑器(nano未标准化)。标准编辑器是ed并且可以代替nano,也可以使用$EDITOR,如果有的话,可以使用由用户或系统配置的默认文本编辑器。
sorpigal 2012年

14
此外,>/path/to/file即使您没有创建一个空文件,您也可以简单地说touch
sorpigal 2012年

2
@EugenRieck如果它说许可被拒绝怎么办
123年


92

使用创建文件 cat

$ cat > myfile.txt

现在,只需在文件中键入任何内容即可:

Hello World!

CTRL-D保存并退出


我喜欢使用cat,因为它提供了一种轻松便捷的方式来立即编辑文件。
assetCorp

您也可以不键入任何内容。
赵冰

当我尝试时cat /etc/systemd/system/sample.service,它说“没有这样的文件或目录”,而不是创建一个新的sample.service文件。
TylerH

@TylerH cat /etc/systemd/system/sample.service打印文件到控制台cat > /etc/systemd/system/sample.service标准输入重定向到文件(这就是为什么你需要按控制d关闭标准输入。
杰里耶利米书

40

有几种可能的解决方案:

创建一个空文件

touch file

>file

echo -n > file

printf '' > file

echo仅当您的echo支持版本-n禁止切换换行符时,该版本才有效。这是非标准添加。其他示例都将在POSIX Shell中运行。

创建一个包含换行符的文件

echo '' > file

printf '\n' > file

这是有效的“文本文件”,因为它以换行符结尾。

将文本写入文件

"$EDITOR" file

echo 'text' > file

cat > file <<END \
text
END

printf 'text\n' > file

这些是等效的。该$EDITOR命令假定您在EDITOR环境变量中定义了一个交互式文本编辑器,并且以交互方式输入了等效的文本。该cat版本在\和另一行之后假定文字换行符。除此之外,这些都将在POSIX shell中工作。

当然,还有许多其他写入和创建文件的方法。



17

如何在Linux上创建文本文件:

  • 使用touch创建一个文本文件:$ touch NewFile.txt
  • 使用cat创建一个新的文件:$ cat NewFile.txt
    被创建的文件,但它是空的,并仍在等待来自用户的输入。您可以在终端中键入任何文本,完成后,CTRL-D将其关闭,或者CTRL-C将使您退出。
  • 只需使用>创建文本文件即可:$ > NewFile.txt
  • 最后,我们可以使用任何文本编辑器名称,然后创建文件,例如:
    nano MyNewFile vi MyNewFile NameOfTheEditor NewFileName



14

第一种方法

echo -n > filename.txt

第二种方法

> filename.txt

第三种方法

touch filename.txt

查看文件内容

vi filename.txt

2种方法是type->“>”> filename.txt”
shashwat gupta

该问题并非帮助中心中定义的堆栈溢出问题。请不要回答这些问题;相反,您应该标记它们以引起注意,它们将被关闭或适当迁移。
Toby Speight,






4

如果你们正在尝试创建一个新文件,但它说:'File does not exist',那仅仅是因为您还在访问一个目录,该目录尚不存在。您必须首先使用mkdir /path/to/dir命令创建所有不存在的目录。


0

使用install创建具有所有权和权限的空白文件。

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

sudo是在许多情况下是有用的,但答案OP的问题没有直接的部分。
Tripleee

如果您不是用户名,则需要该文件,而该文件不是该组的所有者,也不是该组的成员。
LinuxGuru

是的,有些情况严格来说不是OP要求的。
Tripleee

0

最简单快捷的方法之一

$ vim filename
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.