当前位置:C++技术网 > 资讯 > Linux的常用Shell命令新手入门:8 文件操作命令-创建文件

Linux的常用Shell命令新手入门:8 文件操作命令-创建文件

更新时间:2016-09-07 23:53:28浏览次数:1+次

创建文件

1.直接创建空文件touch
touch :触摸,摸一下,接触一下,访问一下。
说明:touch命令用于更新文件的访问时间为当前时间。如果文件不存在,则会创建一个空文件。虽然touch本意是更新文件时间用的,但是却提供了创建空文件的作用。这和Windows中右键新建一个空文件是一个效果。有时候就需要直接创建一个空文件,就可以用touch命令。

语法:touch [选项] 文件名
-a :access (访问),限定只更新访问时间。不加这个选项,会更新存取文件时间、修改文件时间和访问时间。
-c :no-create (不创建,取create的首字母缩写)。加这个选项,当touch的文件不存在时,不会创建一个空文件。
-m :modification(修改),只更新文件的修改时间。

这里只是顺便提一下三个常用的选项,实际上,我们这里要创建空文件,不需要任何选项。
touch cjjjs.txt
描述:如果cjjjs.txt文件不存在,就会创建一个空文件cjjjs.txt。如果已经存在,则会将cjjjs.txt的文件相关时间更新为当前系统时间。这个对于我们一般使用没有什么卵用。

2.创建空文件并立即启动编辑vi
vi:vi是一个编辑器,就好像Windows的记事本一样的程序。我们在Linux中,会经常用Vi来编辑文件。vi的选项以及用法非常多,也是属于必备技巧,因为经常会使用vi,能够熟练的操作vi,将会大大提高编辑效率。

语法:vi 文件名
vi cjjjs.txt
描述:vi就好像是Windows的记事本。如果cjjjs.txt不存在,那么会创建一个空文件,并且立即启动vi,进入cjjjs.txt文件内容编辑状态。如果cjjjs.txt已经存在,那么就会立即用vi启动编辑文件,而不会创建新文件。所以,vi来创建文件,通常是带有编辑目的的。如果只是想创建一个空文件,那么vi反而比较麻烦,touch则直接了当。进入vi后,第一次使用的人会不知道如何编辑文字、不知道如何退出、不知道如何保存,我第一次就是这样的,这很正常。不同的终端支持的不太一样,有的终端在进入vi后,直接进入可编辑状态,有的终端则是命令状态。命令状态无法编辑文件内容,所以感觉就像软件坏了一样。

    如果直接输入内容,则是编辑状态。如果输入内容无效,则在命令状态。有的中断会在底部显示编辑状态INSERT,表示此时可以编辑文件内容,如下图所示:
Linux的常用Shell命令新手入门:文件操作命令1-创建文件
    可以手动切换状态:
i :进入编辑状态
Esc键 :退出编辑状态,进入命令状态。
    进入命令状态后,可以保存文件,可以退出vi。
:q!  :先输入冒号,然后开始输入命令。q即quit(放弃),!表示强制执行。所以q!表示不保存就退出。
:wq  :先输入冒号,然后输入命令。w即write(写入),也就是保存修改的内容。

vi就简单介绍到这里,更多介绍可以敲命令:vi --help查看选项描述

3.非正规的文件创建方式,带内容创建,输出重定向>
语法: echo "文件内容" > 文件名
描述:为什么说是非正规呢?因为echo是shell中直接显示输出内容的命令。这里用到的是>操作,也就是将输出的内容重定向到文件。如果文件不存在,则创建一个新文件,如果存在,则直接将内容导向到这个文件中,而且会直接覆盖原有文件内容。>重定向创建文件的可以在很多命令中实现,比如cat、tail、less等,反正只要有输出,就可以重定向到文件。这个很常用,但是不属于正规的创建文件的方法。当然,这是我个人理解。echo 简单输出一些内容,比如日志,到一个文件,这样可以同时输出内容并创建一个新文件。所以,如果你想创建一个文件,并且写入一些文字,vi有点麻烦,touch又是空白文件,所以可以用echo方便的实现这个效果,而且echo后面的内容可以直接输入。

    如果说要列举创建文件的命令,第3种的各种命令其实是一种。而要说到创建文件的命令,如果只是达到创建效果,那么很多命令在文件不存在的时候,都会创建一个,比如cp、mv,但是这些都不算是正规的创建方法。这就好比,你写很多程序都可以创建文件,你不能说就增加了很多的创建文件的方式吧。