第四章 linux文件管理

时间:2023-01-01 09:33:43

文件管理

文件系统

文件中两类数据

文件命名规则

文件体系结构

文件类型

文件通配符

文件系统:

(将01010机器组织用户可读的文件)

  1. 文件和目录被组织成一个单根倒置树结构
  2. 文件系统从根目录下开始,用“/”表示
  3. 根文件系统(rootfs):root filesystem
  4. 文件名称区分大小写(不是Linux系统对大小写敏感,而是文件系统对大小写敏感)
  5. 以.开头的文件为隐藏文件                                         
  6. 路径分隔符 /

文件有两类数据:

  1. 元数据:metadata,文件的属性信息。
  2. 数据:data,文件的内容。

文件名规则:

  • 文件名最长255个字节
  • 包括路径在内文件名称最长4095个字节
  • 蓝色-->目录 绿色-->可执行文件 红色-->压缩文件 浅蓝色-->链接文件 (相当于Windows的快捷方式)   灰色-->其他文件
  • 除了斜杠和NUL,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用它们。
  • 标准Linux文件系统(如ext4),文件名称大小写敏感。例如:MAIL,Mail,mail, mAiL

文件体系结构:

  • /boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录
  • /bin:供所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序
  • /sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序
  • /lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)
  • /lib64:专用于x86_64系统上的辅助共享库文件存放位置
  • /etc:配置文件目录
  • /home/USERNAME:普通用户家目录
  • /root:管理员的家目录
  • /media:便携式移动设备挂载点
  • /mnt:临时文件系统挂载点
  • /dev:设备文件及特殊文件存储位置
    • b: block device,随机访问
    • c: character device,线性访问
  • /opt:第三方应用程序的安装位置
  • /srv:系统上运行的服务用到的数据
  • /tmp:临时文件存储位置
  • /usr: universal shared, read-only data
    • bin: 保证系统拥有完整功能而提供的应用程序
    • sbin:
    • lib:32位使用
    • lib64:只存在64位系统
    • include: C程序的头文件(header files)
    • share:结构化独立的数据,例如doc, man等
    • local:第三方应用程序的安装位置
      • bin, sbin, lib, lib64, etc, share
  • /var: variable data files
    • u  cache: 应用程序缓存数据目录
    • u  lib: 应用程序状态信息数据
    • u  local:专用于为/usr/local下的应用程序存储可变数据;
    • u  lock: 锁文件
    • u  log: 日志目录及文件
    • u  opt: 专用于为/opt下的应用程序存储可变数据;
    • u  run: 运行中的进程相关数据,通常用于存储进程pid文件
    • u  spool: 应用程序数据池
    • u  tmp: 保存系统两次重启之间产生的临时数据
  • /proc: 用于输出内核与进程信息相关的虚拟文件系统(对应内存中数据)
  • /sys:用于输出当前系统上硬件设备相关信息虚拟文件系统(和硬件相关)
  • /selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置
  • /lost+found:和文件系统有关,默认的ext系列的挂载点下面都有

Linux下的文件类型:

  • -:普通文件
  • d: 目录文件
  • b: 块设备
  • c: 字符设备
  • l: 符号链接文件
  • p: 管道文件pipe
  • s: 套接字文件socket

文件通配符:

     (匹配文件名称) 

  • *匹配零个或多个字符
  • ?匹配任何单个字符
  • ~ 当前用户家目录
  • ~sunan 用户sunan家目录
  • ~+ 当前工作目录
  • ~-前一个工作目录
  • [0-9]匹配数字范围
  • [a-z]:小写字母
  • [A-Z]:大写字母
  • [sunan]匹配列表中的任何的一个字符
  • [^sunan]匹配列表中的所有字符以外的字符

      预定义的字符类:man 7 glob

  • [:digit:]:任意数字,相当于0-9
  • [:lower:]:任意小写字母,相当于a-z
  • [:upper:]: 任意大写字母,相当于A-Z
  • [:alpha:]: 任意大小写字母
  • [:alnum:]:任意数字或字母
  • [:blank:]:水平空白字符
  • [:space:]:水平或垂直空白字符
  • [:punct:]:标点符号
  • [:print:]:可打印字符
  • [:cntrl:]:控制(非打印)字符
  • [:graph:]:图形字符
  • [:xdigit:]:十六进制字符