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”或“">”创建文件?
有关创建文件的一般问题,请参阅:为什么没有任何 shell 命令来创建文件?
使用> file和echo >> file,shell会创建该文件(如果该文件尚不存在)。
使用 时> file,如果文件已存在,则文件将被截断。未指定命令,因此不会向文件写入任何内容,文件将为空。
echo,不带任何参数,打印一个空行。因此输出包含行结束字符,通常是换行符 (LF, \n):
% echo | od -c
0000000 \n
0000001
Run Code Online (Sandbox Code Playgroud)
因此echo >> file,使用 ,您将向文件写入一个字节。如果文件已经存在,那么它将添加一个字节,因为您使用了>>(追加)而不是>(覆盖)。
touch如果文件尚不存在,则创建该文件,否则更新该文件的时间戳。touch不会更改文件的内容,因此如果文件已经存在并且其中包含一些内容,则在touch.
你想用哪个取决于你想要什么效果。