Linux(四)目录和文件(一) 文件类型、路径及目录操作 | 您所在的位置:网站首页 › 计算机文件的路径分为绝对路径和什么 › Linux(四)目录和文件(一) 文件类型、路径及目录操作 |
一、一切皆文件
在Linux的设计思想中,很重要的一点,就是“一切皆文件”。外设(键盘、鼠标、屏幕)、磁盘、打印机、甚至 首先来看普通文件,也就是数据文件。我们存放表格、文档、照片、视频等等的文件,是普通文件。普通文件里面,是用户的数据。它存放在硬盘上,具有自己的存放地址(起始扇区和结束扇区)。 硬盘(磁盘)可以理解为具有一圈一圈磁道的圆盘,数据就是存储在这些磁道上的。数据肯定是有一定大小的,所以会有一个开始存放的位置和结束的位置。普通文件是比较容易理解的。 1.2 目录文件上文中,我们说在Linux中,目录也是一个文件,叫目录文件。听上去感觉有点奇葩,因为可能在更多人的心目中,目录更像是容器,去容纳和承载文件(普通文件)。但其实稍后做了解释,你可能就会觉得“目录理所当然是文件”。 首先我们来想一下目录的作用:构建一个“树形结构”,一层一层的去存放内容(其他目录、其他文件或程序等)。 那么我们再想一下1.1中对“普通文件”存放方式的描述,就会有一个问题:“普通文件是放在磁盘的磁道上的,我们所谓的目录树形结构,如何在磁道级别体现呢?” 实际上,这种树形结构,并非在磁道级别去实现的,而依然是数据级别。我们假设有下面这张表,表的名字叫Home。 序号 子项名称 子项存储起始扇区位置 子项存储结束扇区位置 1 Desktop 1000 1500 2 Pictures 8000 8500之后有有表Pictures内容如下 序号 子项名称 子项存储起始扇区位置 子项存储结束扇区位置 1 OIP-1.jpeg 11000 12000 2 OIP-2.jpeg 15000 16000 2 OIP-3.jpeg 18000 19000用这两个表中的数据,是不是就可以形成一个简单的树形结构? home、Desktop和Pictures这些表,是不是需要保存在文件里?我们将home保存为一个home文件,将Desktop保存为一个Desktop文件,将Pictures保存为一个Pictures文件。这些文件,就是目录文件。所以,目录文件保存的是一种文件之间的层级关系,当然还有其他信息,不再展开。 1.3 设备文件设备文件是Linux用于对硬件设备进行访问和控制的文件。按照一定的规则向设备文件中写入内容,就可以控制某些设备。从设备文件中读取数据并按照相应规则解析时,就可以读取到设备的输入。 比如键盘文件,我们使用evtest对键盘文件进行读取,当按下键盘按键时,可以读取到相应的信息。需要说明两点: 键盘文件是eventXX,具体是哪个文件,需要根据自己电脑情况尝试; 使用虚拟机时,你需要在虚拟机内敲键盘,才会有数据的读取;在主机进行操作不会有输出。 # 查看键盘事件 sudo evtest /dev/input/event2说到目录,我们经常会用到的几个词是:根目录、主目录、当前目录、上级目录。分别是什么意思呢? 根目录。是系统的最顶级目录,用/表示。 cd / # 切换到根目录主目录。主目录又叫用户主目录,我们在系统主界面直接打开shell,其实就是在根目录下。用~表示。主目录的最末级,是自己设置的用户名。 cd ~ # 切换到主目录当前目录。是你的shell指令,当前位于什么目录下。可通过shell:和$之间的路径显示判断。用.表示。 上级目录。是当前目录的上一级,如上图中,当前目录的上一级为/dev,在上一级为/。用..表示。 cd ../ #切换到上级目录路径,是与目录紧密关联的另一个概念,是指的要到达你的操作对象,需要经历的目录序列;分为绝对路径和相对路径。 绝对路径。是指的从根目录开始,直到你要操作的对象的目录序列。 相对路径。是指的从当前目录开始,直到你要操作的对象的目录序列。 两种路径,各有其适用的情况。 相对路径。当你所操作的文件,位于当前路径的下层,或者位于不远的临近区域,那么适合用相对路径 绝对路径。当你所操作的文件,位于遥远的另一个分支,那么适合用绝对路径 依然以我们上面,键盘文件来举例。我当前位于主目录(~),想去监听键盘文件event2。用什么路径更方便呢?肯定是相对路径。我们需要首先来看一下目录到达event2和主目录的树形结构。我们当前所在目录为主目录。可以看到,主目录是从根目录开始/->home->ubuntu下来的。而我们要操作的对象,从根目录向下就和我们当前目录分离了,是/->dev->input->event2。如果我们使用相对路径去操作event2,那么将会经历一个非常长的路径:ubuntu->home->/->dev->input->event2。而且其实是无意义的,因为绝对路径就是从根目录(/)开始的。而我们刚才的相对路径里面,其实就包含了从根目录开始,一直到event2的一段。那么绝对路径就是:/->dev->input->event2。 sudo evtest /dev/input/event2如果我们位于~/Documents下,我们要对~/Pictures里面的图像进行操作。那么,使用相对路径就较为简单: cd ~/Documents ls -lh ../Pictures/OIP-1.jpeg需要额外提到的一点是,此处的路径使用的..开头,表示上级目录。在我们上面已经提到。 以下指令[]的是可选内容,是自定义内容 2.2.1 创建目录指令为: mkdir [-p]其中: mkdir-- make directory,创建目录的意思 -p -- 如果添加,可以一次性创建多级目录 比如: cd mkdir ./mydir #可以创建一个新的名字为mydir的目录 ls指令为: rmdir [-p]示例,删除刚才创建的目录。
rmdir只能删除 加-p 删除。如果删除子目录后,父级目录为空,则把父级目录也会删除。 rmdir -p mydir2/pic # 删除成功,而且mydir2也没了在这里,使用./mydir2/pic 和 mydir2/pic 是不同的,使用./mydir2/pic ,删除命令会把你当前的目录算作要删除的最顶级目录,会报参数错误。而使用mydir2/pic则会只截至到mydir2 mkdir -p mydir2/pic/ rmdir -p ./mydir2/pic依然需要一个隐含条件:pic目录下没有东西,如果我们把里面放上东西,比如一张图片。再次尝试 cd && mkdir -p mydir2/pic/ && cp ./Pictures/OIP-1.jpeg ./mydir2/pic/ rmdir -p ./mydir2/pic可以使用如下命令,对文件夹及其内的文件进行删除。 切换目录的指令是cd(change directory),切换目录。 参考上述相对路径、绝对路径。 使用pwd(print working directory)指令可以查看当前的路径。 cd pwd 2.2.4 列出目录使用ls,可以列出当前目录下的内容。前面已经多次使用过。其有几个参数 序号 参数 作用 1 -a 显示所有包含项目,包括隐藏项目 2 -l 以长格式显示文件属性,大小等详细信息 3 -d 仅显示目录的详细信息 4 -R 递归显示出目录及其子目录的内容 5 -S 以文件大小降序排序显示文件 6 -t 以文件最近一次的修改时间排序显示文件几个之前文档中不常用的指令测试 ls -lhS.bash_history 就是隐藏文件。在上面的命令中,并没有显示出来。但在目前的文件中显示出来了。 |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |