在 Linux 中创建文件?(触摸与回声)

Ale*_*dez 3 linux echo files touch

总的来说,我对 Linux 还很陌生,所以我不太熟悉某些命令的注意事项。

我想创建一个文件并注意到:

touch file.txt `
Run Code Online (Sandbox Code Playgroud)

创建一个文件,但也是如此:

echo >> file.txt
Run Code Online (Sandbox Code Playgroud)

并且

> file.txt
Run Code Online (Sandbox Code Playgroud)

使用“">”和“touch”创建的文件都是0字节,但使用“echo”创建的文件是1字节。

为什么文件大小不同?创建文件的最佳方法是什么?什么时候应该使用“echo”而不是“touch”或“">”创建文件?

mur*_*uru 5

有关创建文件的一般问题,请参阅:为什么没有任何 shell 命令来创建文件?


使用> fileecho >> fileshell会创建该文件(如果该文件尚不存在)。

使用 时> file,如果文件已存在,则文件将被截断。未指定命令,因此不会向文件写入任何内容,文件将为空。

echo,不带任何参数,打印一个空行。因此输出包含行结束字符,通常是换行符 (LF, \n):

% echo | od -c
0000000  \n
0000001
Run Code Online (Sandbox Code Playgroud)

因此echo >> file,使用 ,您将向文件写入一个字节。如果文件已经存在,那么它将添加一个字节,因为您使用了>>(追加)而不是>(覆盖)。

touch如果文件尚不存在,则创建该文件,否则更新该文件的时间戳。touch不会更改文件的内容,因此如果文件已经存在并且其中包含一些内容,则在touch.

你想用哪个取决于你想要什么效果。