千家信息网

如何理解touch、mkdir命令

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,这期内容当中小编将会给大家带来有关如何理解touch、mkdir命令,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。01 命令简介任何事物都有生命周期,Linux中的
千家信息网最后更新 2024年11月24日如何理解touch、mkdir命令

这期内容当中小编将会给大家带来有关如何理解touch、mkdir命令,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

01 命令简介

任何事物都有生命周期,Linux中的文件和目录也一样:创建、修改、删除。今天我们来讲一讲文件和目录的创建。

touch--修改文件的访问时间和修改时间(可用来创建空文件)


mkdir--make directory,创建目录

02 命令详解

语法

mkdir  [选项] 目录名touch  [选项] 文件名

mkdir和touch两条命令,都有选项和参数。只不过mkdir命令的参数是目录名,而touch命令的参数是文件名而已。

这里跟大家强调一下:选项和参数的可选,不同命令的要求是不一样的。

选项对命令来说,一般都是可选的。参数是否可选,不同命令有各自的规定。如果可选,我会添加方括号"[ ]";如果不可选,也就是必需,则不会添加方括号"[ ]"。

因此,语法中选项加了"[ ]",代表选项不是必需的,可以省略;但两条命令的参数,我都没加"[ ]",证明这两条命令在使用时必需提供参数。请各位校友注意这些细节。


可以看到,系统明确提示命令缺少操作数,也就是参数。

参数

mkdir  目录名

mkdir命令的参数是要创建的目录的名字。严格来讲,参数是要创建的目录的路径名。

我们可以只提供要创建的目录的名字。这种情况下,系统会在当前的工作目录中创建目录。


可以看到,在当前的工作目录中创建了new_dir目录。另外目录名可以包含空格,但这个时候目录名需要用引号括起来。


我们也可以指定目录的路径。这个时候,就会在我们指定的路径下创建目录。


这两者可以想象成软件的默认安装和自定义安装,这样可能形象些,方便大家理解。

如果要创建的目录已经存在,系统则会报错,提示目录已经存在。


touch命令,主要是用于修改文件和目录的访问时间和修改时间,但默认情况下,参数指定的文件不存在的话,touch命令会创建该文件。


和创建目录一样,不指定路径的话,会在当前工作目录创建文件。我们也可以指定文件路径。


选项

mkdir命令和touch命令可以同时处理多个参数。在提供多个参数时,我们只需要用空格分隔参数即可。


可以看到,在同级目录中创建了两个目录和文件。那可以在新建目录的同时,再在其中新建一个目录吗?

试试看。通过如下命令在创建father_dir目录的同时,在其中新建son_dir目录。

mkdir father_dir/son_dir


发现系统报错,原因我在图片中已经标明。这条命令的意思根本不是在新建father_dir目录的同时,在其中新建son_dir目录,而是在当前目录的father_dir中新建son_dir目录,这其实是在指定新建目录的相对路径。但此时当前目录并不存在father_dir目录,所以系统才会报错。

那难道只能新建一个目录,然后切换到新目录中再新建子目录,这样一层一层进行吗?

当然不是的,如果只能这样的话,几十层的目录创建不得创建半天?当然一般也不会有这么多层。

mkdir命令提供了一个很人性化的"-p"选项,让我们可以很轻松的实现这些工作。

mkdir -p  目录名/目录名/.../目录名


加了"-p"选项后,系统没有报错,在新建father_dir目录的同时,在其中新建了son_dir目录。

这就是"-p"选项的功效:创建通向指定目录但尚不存在的所有目录。换句话说,就是将路径中不存在的目录全部创建。

father_dir/son_dir,最开始,当前目录不存在father_dir目录,就先创建father_dir目录;创建完后发现father_dir目录下没有son_dir目录,就继续创建son_dir目录,直到路径中所有目录都存在。也有人把这称为"递归创建"。


mkdir命令常用的选项还有"-v"选项和"-m"选项。"-v"选项的作用是每创建一个目录就打印一条信息,"-m"选项的作用是设置目录的权限。这里先介绍一下"-v"选项,"-m"选项等以后介绍权限时再讲。

上一章节说到要创建的目录如果已经存在,系统则会报告,那么如果创建的文件已经存在,系统会报错吗?


可以看到,系统并没有报错,但好像也看不出有啥区别。这就涉及时间属性了。


利用长格式查看详细信息,发现两次命令后,文件时间不一样。我们可以使用stat命令查看文件更为详细的状态信息。


列出的信息中有三个时间。

Access:访问时间;读取但不修改文件内容Modify:修改时间;修改文件内容Change:改动时间;属性和位置的改动

在文件存在的情况下,touch命令默认会修改文件的访问时间和修改时间。但它提供了"-a"选项和"-m"选项,分别只修改访问时间或修改时间。

touch -a file.txt


"-a"选项,只改变访问时间。

touch -m file.txt


"-m"选项,只改变修改时间。

除了可以指定修改哪种时间属性,还可以指定时间属性的值(默认是当前时间)。

指定时间属性的值有两种选项:"-t"选项和"-d"选项。效果一样,只是值的格式不一样而已。


"-t"选项的时间格式为:

[[CC]YY]MMDDhhmm[.ss]

其实就是世纪、年、月、日、时、分、秒的英文首字母。


"-d"选项相对"-t"选项,时间格式会多一些。图片中是其中的一种,其他格式这里不再赘述,有兴趣的校友可自行查询资料。

touch命令还有个"-c"选项。在默认情况下,如果文件不存在,touch命令会新建空文件;加了"-c"选项之后,就不会创建文件。

03 知识总结

语法:    mkdir  [选项] 目录名    touch  [选项] 文件名用途:    mkdir----创建空目录    touch----修改文件和目录的访问时间和修改时间(默认情况下创建空文件)参数:    mkdir:目录的路径名(若只提供目录名,则在当前工作目录中创建目录)    touch:文件的路径名(若只提供文件名,则在当前工作目录中创建文件)选项:    mkdir:-p----递归创建    touch:-a----只更新访问时间           -m----只更新修改时间           -t、-d----指定时间属性的值           -c----即使文件不存在也不创建文件其他:    stat命令:查看文件或文件系统的状态信息

上述就是小编为大家分享的如何理解touch、mkdir命令了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

0