Linux文件的类型

在Linux中文件的类型是通过文件权限的首位定义的,可以分为以下几类。

1.普通文件

普通文件包括源程序文件、脚本文件、可执行程序文件及各种数据文件。普通文件的文件类型标识位为"-",使用ls命令可以查看文件的类型,例如:

  1. #ls  -l  suple
  2. -rw-r--r--   1 root root   540 07-23 08:31 suple

2.目录文件

目录实际上是一种特殊的文件。目录下可以包含文件和子目录。目录文件的类型标识位为"d",如下所示:

  1. #ls  -l  tmp
  2. drwxrwxrwt  21 root root  4096 07-25 22:49 tmp

3.套接字文件

套接字(socket)是用来进行网络通信的常用方法之一。Linux文件系统可以通过套接字文件实现网络通信。套接字的文件类型标识位为"s",例如:

  1. #ls  -l  x1
  2. srwx------  2 root root  0 07-25 17:49 x1

4.命名管道

文件系统通过命名管道文件可以实现进程间的通信。命名管道的文件类型标识位为"p",例如:

  1. #ls  -l  p1
  2. prwx------  2 root root  0 07-25 17:59 p1

5.设备文件

Linux系统将设备识别为特殊的文件进行处理。设备文件可以分为两类:字符设备和块设备。字符设备的文件类型标识位为"c",打印机、键盘等都属于字符设备。磁盘、磁带等都属于块设备,块设备的文件类型标识位为"b"。在系统的/dev目录下存放了大量的设备文件,例如字符终端tty1的设备文件为/dev/tty1。使用ls命令可以看到字符设备的首字符为"c",块设备的首字符为"b",如下所示:

  1. #ls  -l  /dev/tty1
  2. crw-------  1 root root     4,    1 07-25 05:44 tty1
  3. #ls  -l  /dev/sda1
  4. brw-r-----  1 root disk     8,    1 07-25 05:41 sda1

6.链接文件

为了使用、管理的方便和节省磁盘空间,Linux 允许一个物理文件有一个以上的逻辑名,即可以为一个文件创建一个链接文件,用来表示该文件的另一个名字。不同的链接文件可为之指定不同的访问权限,从而实现既可共享,又可安全控制的目的。

Linux文件系统中有两类链接文件:一类叫做硬链接,一类叫做符号链接。硬链接的文件类型标识位与被链接的文件相同。不带参数使用ln命令可以建立硬链接文件,例如对sysv文件建立硬链接的命令如下:

  1. # ls  -il  sysv
  2. 390162 -rw-r--r-- 1 root root 0 07-26 00:51 sysv
  3. # ln  sysv syslink
  4. # ls  -il  sysv slink
  5. 390162 -rw-r--r-- 2 root root 0 07-26 00:51 slink
  6. 390162 -rw-r--r-- 2 root root 0 07-26 00:51 sysv

从本例中可以看出硬链接文件slink与被链接的文件sysv指向同一个i节点(节点编号390162),硬链接与被链接的文件具有相同的文件类型标识位"-",建立硬链接后,文件的链接数由1变为2。

实际上硬链接只是源文件的一个硬复制,它们在目录文件中的入口项指向的是同一个i节点。只有当硬链接的全部链接被删除时才能够释放此i节点。用户对这个文件所做的任何修改,所有的硬链接都可以同步看到。硬链接的文件必须在同一个文件系统中,目录不能建立硬链接。

建立符号连接可以使用带参数"-s"的ln命令,符号链接只是指定到真实文件的访问路径上,与源文件的i节点号不同。如果源文件被删除,符号链接就被损坏了。符号链接的文件类型标识位为"l"。例如为文件ftpuser建立符号链接fuser,命令如下所示:

  1. # ls  -il  ftpuser
  2. 390161 -rw-r--r-- 1 root root 0 07-26 01:17 ftpuser
  3. # ln  -s  ftpuser  fuser
  4. # ls  -il  ftpuser fuser
  5. 390161 -rw-r--r-- 1 root root 0 07-26 01:17 ftpuser
  6. 390162 lrwxrwxrwx 1 root root 7 07-26 01:18 fuser -> ftpuser
  7. # rm  ftpuser
  8. rm:是否删除 一般空文件 "ftpuser"? y
  9. # ls  -il  ftpuser  fuser
  10. ls: ftpuser: 没有那个文件或目录
  11. 390162 lrwxrwxrwx 1 root root 7 07-26 01:18 fuser -> ftpuser

可以看到ftpuser与fuser的i节点号不同(ftpuser为390161,fuser为390162),fuser的文件类型标识位为"l"。源文件ftpuser被删除后,符号链接文件报错。

与硬链接不同,符号链接可以跨文件系统建立,并且可以指定到目录。硬链接与符号链接的区别如图6.3所示。

 
图6.3  硬链接与符号链接

时间: 2024-08-09 02:34:53

Linux文件的类型的相关文章

linux文件层级、目录、文件基本操作介绍

1.文件层级FHS介绍: Filesystem Hierarchy Standard(文件系统层次化标准)的缩写,多数Linux版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结构组织文件. FHS定义了系统中每个区域的用途.所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理. /:linux文件系统根目录 /bin:供所有用户使用的基本命令文件 /sbin:供系统管理员使用的工具程序文件 /lib:供/bin和/sbin程序调用的库文件程序,及系

【转】每天一个linux命令(24):Linux文件类型与扩展名

原文网址:http://www.cnblogs.com/peida/archive/2012/11/22/2781912.html Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文件类型中衡量的话,大多是常规文件(也被称为普通文件). 一. 文件类型 Linux文件类型常见的有:普通文件.目录文件.字符设备文件和块设备文件.符号链接文件等,现在我

Linux文件类型与扩展名

Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文件类型中衡量的话,大多是常规文件(也被称为普通文件). 一. 文件类型 Linux文件类型常见的有:普通文件.目录文件.字符设备文件和块设备文件.符号链接文件等,现在我们进行一个简要的说明. 1. 普通文件 我们用 ls -lh 来查看某个文件的属性,可以看到有类似-rwxrwxrwx,值得注意的是

linux查找特定类型的文件中是否包含特定字段

shell是个好东西,极大的方便了查询工作,之前遇到一个问题,查询包含有特定字段的特定文件,经过查询,命令如下: 1 find . -type f -name '*.cpp' print|xargs grep -r '#include' -l 上述命令的意思是查询包含有 '#include' 字符的 cpp文件,并给出文件名列表.具体需要熟悉find 和grep命令和各个参数的意思. 参考链接:http://blog.sina.com.cn/s/blog_691a84f301015khx.htm

Linux文件类型及颜色标识整理

Linux文件类型及颜色标识整理 缩 写 文件类型 英 文 颜  色 - 普通文件 Regular  file 白色 d 目录文件 Dirrectory  file 蓝色 b 块特殊文件 block  special file 黄色 c 字符设备文件 character  special file 黄色 p 先进先出管道文件 FIFO 暗黄色 s 套接字文件 Socket 粉红色 l 符号链接文件 sysmnolic  link 浅绿色 图示: 上图内容所有文件均是自行创建或其他目录拷贝而来,只

Linux文件类型分类

Linux文件一般是用一些相关的应用程序创建,比如图像工具.文档工具.归档工具... .... 或 cp工具等.linux文件的删除方式是用rm 命令. Linux文件类型:Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文件类型中衡量的话,大多是常规文件(也被称为普通文件). Linux文件类型常见的有:普通文件.目录.字符设备文件.块设备文件.

每天一个linux命令(23):Linux文件类型与扩展名

Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文件类型中衡量的话,大多是常规文件(也被称为普通文件). 一. 文件类型 Linux文件类型常见的有:普通文件.目录文件.字符设备文件和块设备文件.符号链接文件等,现在我们进行一个简要的说明. 1. 普通文件 我们用 ls -lh 来查看某个文件的属性,可以看到有类似-rwxrwxrwx,值得注意的是

linux 文件类型 文件权限

linux中常见的文件类型有: “—”表示普通文件 :-rw-r--r-- 1 root root 41727 07-13 02:56 install.log “d”表示目录 :drwxr-xr-x 2 root root  4096 07-13 03:18 Desktop “b”表示块设备文件 :brw-r----- 1 root disk 8, 0 07-13 05:57 /dev/sda “c”表示字符设备文件 : crw-rw-rw- 1 root tty 5, 0 07-13 05:5

Linux文件类型及目录配置

Linux文件类型与扩展名 在Linux系统中,任何硬件设备或者其他设备都是以文件的形式存在,就连数据通信的接口这些也是由专门的文件来负责的,因此Linux的文件种类就非常多,出了之前我们常见的 - 或者 d 表示一般文件与目录文件之外,还有哪些种类的文件呢? 1.文件种类 我们使用 ls -l 这个命令时,可以观察到第一栏那十个字符中,第一个字符为文件的类型. 除了常见的一般文件(-)与目录文件(d)之外,还有哪些种类的文件类型呢? 普通文件(regular file ): 就是一般我们在进行