如何从命令行创建一个空文件


189

如何从命令行创建一个空文件?

Answers:


237

使用touch命令:

The touch utility sets the modification and access times of files to the
current time of day. If the file doesn't exist, it is created with
default permissions.

例:

touch newfile

14
您也可以使用touch newfile.txt或其他扩展名(如果需要指定扩展名)。
gotqn 2014年

@gotqn对于python touch newfile.py和对于ruby newfile.rb吗?
kouty

3
但是,如果newfile已经存在并且不为空,touch newfile则将留下一个非空文件。也许不是您想要的。
卡米尔·古德塞内

@CamilleGoudeseune我认为,如果命令newfile已经存在,touch它将仅更新文件的时间戳(这正是该命令的目的),而无需编辑文件的内容。
C0deDaedalus

您不必这么认为;这是真的!但这不是问题要问的。
卡米尔·古德塞内

81
> newfile

还将创建一个空文件。如果文件已经存在,它将被截断(清空)。要保留文件内容,请>>按如下所示用于附加:

>> file

即使文件存在,其内容也将保持不变。

编辑:如果您没有要键入的任何内容,则此内容会更快:

user@host$ :> newfile
user@host$ :>> new_or_existing_file

注意。:是这里的命令。它不是提示的一部分。


现在是新的。它是bash特有的吗?
tshepang 2011年

我不这么认为。任何允许将输出流重定向到文件的外壳程序都应支持此功能。如果该文件已经存在,它将被截断。如果您不想清空它,可以安全地使用它。
巴尔基2011年

哇,我想这就是所谓的作弊系统
banarun 2014年

12
cat /dev/null > file1.ext 

确切的方法还有另一种方法

echo "" > file2.ext 

区别在于file1.ext将为零字节,而file2.ext将为一字节。您可以通过以下方式检查

ls -l file*.*

10
不,'echo“”>'不会创建一个空文件,它会创建一个包含换行符的文件。如果出于某种原因要使用echo创建一个空文件,则必须使用'echo -n“”>',或者简单地使用'echo -n>'
andol 2011年

7

使用vim编辑器,您还可以创建一个空文件。

vim filename

然后保存

:wq

好吧,在这种情况下,不是任何文本编辑器,而是vim
Nephente

2

命令

echo -n > file

如果您的echo支持版本-n ,则创建一个空文件。

或者你可以使用 printf

printf '' > file

0

Python一线式:

$ python -c 'import sys,os;f=sys.argv[1];os.utime(f,None) if os.path.exists(f) else open(f,"a").close' myfile.txt

基本上,的python实现touch

我们可以通过以下方式使其更短:

$ python -c 'import sys,os;f=sys.argv[1];'$'\n''with open(f,"a"): os.utime(f,None)' mysecondfile.txt 
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.