Linux 中一切皆为文件,文件类型也有多种,使用 ls -l 命令可以查看文件的属性,所显示结果的第一列的第一个字符用来表明该文件的文件类型,如下:

1、普通文件

  使用 ls -l 命令后,第一列第一个字符为 "-" 的文件为普通文件,如上图所示,普通文件一般为灰色字体,绿色字体的是可执行文件,红色字体的是压缩文件。

文件的权限:

  以普通文件为例,使用 ls -l 命令,可以看到结果的第一列是 -rwxrwxrwx 的形式,其中第一个字符 "-" 表示这个文件为普通文件,它也可以是其他的字符,不同的字符代表不同类型的文件。其后的一串字符表明了该文件的权限,其中:

1)r 表明该文件具有可读权限,若该位置为 "-" ,则表明文件不可读;

2)w 表明该文件具有写权限,若该位置为 "-" ,则表明文件不可写;

3)x 表明该文件具有可执行权限,若该位置为 "-" ,则表明文件不具有可执行权限;

4)第一个 rwx 表示该文件的所有者对该文件的权限;第二个 rwx 表示该文件所属组对该文件的权限;第三个 rwx 表示其他用户对该文件的权限。

创建一个普通文件:

  可以使用 touch 命令来创建一个文件:

touch newfile

删除一个普通文件:

  可以使用 rm 命令来删除一个文件:

rm newfile

2、目录文件

  Linux 中的目录也是文件,目录文件中保存着该目录下其他文件的 inode 号 和文件名等信息,目录文件中的每个数据项都是指向某个文件 inode 号的链接,删除文件名就等于删除与之对应的链接。目录文件的字体颜色是蓝色,使用 ls -l 命令查看,第一个字符为"d"(directory)。

目录文件的权限

1)r 表明该目录文件具有可读权限,即可以使用 ls 命令查看该目录的存储情况;

2)w 表明该目录文件具有写权限,即可以往该目录下添加、修改、删除文件;

3)x 表明该目录文件具有可执行文件,即可以使用 cd 命令进入到该目录下。

  可以使用 chmod 指令来改变文件的权限。

创建一个目录:

  可以使用 mkdir 命令来创建一个目录文件:

mkdir directory

删除一个目录:

  可以使用 rmdir 命令来删除一个空目录:

rmdir directory

  如果该目录下有其他文件,则可以使用 rm -r 命令来递归删除该目录下的所有文件。需要注意的是,使用该命令将会删除该目录及目录下的所有数据,过程不可逆,需要谨慎使用:

rm -r directory

3、链接文件

  链接文件一般指的是一个文件的软连接(或符号链接),使用 ls -l 命令查看,第一个符号为  "l",文件名为浅蓝色,如下:

  这里,test_softlink 就是一个链接文件,从结果上还可以看到它是文件 test.txt 的软链接,删除原文件 test.txt 的话,对应的软链接文件 test_softlink 也会消失。可以使用 ln 命令来创建一个文件的链接文件:

1)软链接

  软链接(又称符号链接),使用 ln -s file file_softlink 命令可以创建一个文件的软链接文件:

ln -s test.txt test_softlink

  软链接相当于给原文件创建了一个快捷方式,如果删除原文件,则对应的软链接文件也会消失。

2)硬链接

  硬链接,相当于给原文件取了个别名,其实两者是同一个文件,删除二者中任何一个,另一个不会消失;对其中任何一个进行更改,另一个的内容也会随之改变,因为这两个本质上是同一个文件,只是名字不同。使用 ls -i 命令查看,可以发现硬链接的两个文件的 inode 号是一样的:

  同样的,使用 ln 命令可以创建一个文件的硬链接:

ln test.txt test_hardlink

4、设备文件

  Linux 中的硬件设备如硬盘、鼠标等也都被表示为文件,即为设备文件。设备文件一般存放在 /dev/ 目录下,文件名为黄色,如下:

  设备文件分两种:

1)块设备文件:

  块设备文件支持以块(block)为单位的访问方式。在 EXT4 文件系统中,一个 block 通常为 4KB 的大小,也就是说每次可以存取 4096(或其整数倍) 个字节的数据。应用程序可以随机访问块设备文件的数据,程序可以自行确定数据的位置,硬盘、软盘等都是块设备。使用 ls -l 命令查看,块设备文件的第一个字符是 "b"(block)。

2)字符设备文件:

  字符设备文件以字节流的方式进行访问,由字符设备驱动程序来实现这种特性,这通常要用到 open、close、read、write 等系统调用。字符终端、串口和键盘等就是字符设备。另外,由于字符设备文件是以文件流的方式进行访问的,因此可以顺序读取,但通常不支持随机存取。使用 ls -l 命令查看,字符设备文件的第一个字符是 "c"(char)。

5、管道文件(FIFO文件)

  管道文件主要用于进程间通信,使用 ls -l 命令查看,第一个字符为 "p"(pipe)。可以使用 mkfifo 命令来创建一个管道文件:

mkfifo fifo_file

  在 FIFO 中可以很好地解决在无关进程间数据交换的要求,FIFO 的通信方式类似于在进程中使用文件来传输数据,只不过 FIFO 类型的文件同时具有管道的特性,在读取数据时,FIFO 管道中同时清除数据。

Linux 文件系统 -- 简述几种文件类型的更多相关文章

  1. Linux 下的7种文件类型

    普通文件类型 (-)Linux中最多的一种文件类型, 包括 纯文本文件(ASCII):二进制文件(binary):数据格式的文件(data);各种压缩文件.第一个属性为 [-] ,这些文件一般是用一些 ...

  2. 搞懂Linux下的几种文件类型

    在Linux系统下,有七类文件类型: 普通文件(-) 目录(d) 软链接(字符链接L) 套接字文件(S) 字符设备(S) 块设备(B) 管道文件(命名管道P) 普通文件.目录.软链接无需多解释. 管道 ...

  3. 【Linux】七种文件类型

    Linux中的七种文件类型 d 目录文件. l 符号链接(指向另一个文件). s 套接字文件. b 块设备文件,二进制文件. c 字符设备文件. p 命名管道文件. - 普通文件

  4. linux文件属性详解及文件类型

    一  drwxr-xr-x的意思解释: ls -al 得到如下列表: drwxr-xr-x oracle dba May : oralog1 drwxr-x--- root root May : ro ...

  5. linux文件的3个时间和7种文件类型

    linux文件的三个时间:  atime: access time --最近访问时间. ctime: change time --最近改变时间. mtime:modify time --最近修改时间. ...

  6. Linux文件系统和管理-2文件操作命令(上)

    文件操作命令 文件 文件也包括目录 目录是一种特殊的文件 目录 一个目录名分成两部分 所在目录 dirname 父目录的路径 文件名 basename 本身就是两个命令 [root@C8-1 misc ...

  7. Linux— file命令 用于辨识文件类型

    Linux file命令用于辨识文件类型. 通过file指令,我们得以辨识该文件的类型. 语法 file [-bcLvz][-f <名称文件>][-m <魔法数字文件>...] ...

  8. Linux文件系统和管理-1文件系统目录

    文件系统目录结构 Linux常见目录及用途 bin binary 放的是二进制程序 /usr/bin 和这是同一回事 bin -> usr/bin /bin是 /usr/bin的快捷方式 boo ...

  9. linux的七种文件类型

    d 目录 - 普通文件 l 符号链接 s 套接字文件 b 块设备文件 二进制文件 c 字符设备文件 p 命名管道文件

随机推荐

  1. HDU5343:MZL's Circle Zhou(SAM,记忆化搜索DP)

    Description Input Output Sample Input Sample Output Solution 题意:给你两个串,分别从两个里面各选出一个子串拼到一起,问能构成多少个本质不同 ...

  2. kukubeadm 1.6.1 + docker1.2.6 安装问题

    kubeadm init --apiserver-advertise-address=192.168.20.229 --pod-network-cidr=10.244.0.0/16 kubelet: ...

  3. PCB布线经验

      查看: 3645|回复: 11    [经验] PCB设计经验(1)——布局基本要领 [复制链接]     ohahaha 927 TA的帖子 0 TA的资源 纯净的硅(中级) 发消息 加好友 电 ...

  4. DBlink的创建与删除

    创建方式一: create [public] database link link名称 connect to 对方数据库用户identified by 对方数据库用户密码 using  '对方数据库i ...

  5. RHEL 7.6 安装 Oracle 18c RAC

    RHEL 7.6 安装 Oracle 18c RAC 第一部分 安装规划 虚拟环境 VirtualBox 6.0 OS 版本 Red Hat Enterprise Linux Server relea ...

  6. Oracle透明网关访问SQLServer数据库

    针对oracle数据库不同实例之间的数据访问,我们可以直接通过dblink访问,如果oracle数据库想访问mysql/sqlserver等数据库的数据,我们可以通过配置oracle透明网关实现异构数 ...

  7. GoogleTest初探(1)

    此篇主要了解一下GoogleTest中的断言. 总的来说,GoogleTest中的断言分为两大类:EXPECT_*和ASSERT_*,这两者在测试成功或失败后均会给出测试报告,区别是前者在测试失败后会 ...

  8. Runtime Errors:CALL_FUNCTION_REMOTE_ERROR/CALL_FUNCTION_NOT_REMOTE

    调用一个新建的接口时,报错. 调用端: 被调用端: 错误很明显,是RFC漏选了 Remote-Enabled Module(运程启用的模块). 修改后,问题解决.

  9. Scala_Trait特征

    1,scala提供的“特征”可以同时拥有抽象方法和具体方法,一个类可以拥有多个特质 2,类可以通过“extends”关键字继承trait,继承trait后必须实现trait中的所有抽象方法,而不是用 ...

  10. 大数据入门第五天——离线计算之hadoop(上)概述与集群安装

    一.概述 根据之前的凡技术必登其官网的原则,我们当然先得找到它的官网:http://hadoop.apache.org/ 1.什么是hadoop 先看官网介绍: The Apache™ Hadoop® ...