欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

linux文件管理

程序员文章站 2022-05-11 14:49:25
...

目录

1、文件系统简介

2、管理文件的命令介绍

3、软连接和硬链接

4、inode

1、文件系统介绍

  • (1)文件系统的含义

    文件系统是用来管理和组织保存在磁盘驱动器上数据的系统软件。

  • (2)linux系统文件系统的介绍
    • 文件和目录被组织成一个单倒置的树状结构;
    • linux文件系统分层结构基于LSB标准;具体信息可以参考(FHS)[http://www.pathname.com/fhs/]
  • (3) 文件系统结构介绍

    • /boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器
      (bootloader, grub)都存放于此目录;

    • /bin:供所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序;

    • /sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序;

    • /lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules);

    • /lib64:专用于x86_64系统上的辅助共享库文件存放位置;

    • /etc:配置文件目录;

    • /home/USERNAME:普通用户家目录;

    • /root:管理员的家目录;

    • /media:便携式移动设备挂载点;

    • /mnt:临时文件系统挂载点;

    • /dev:设备文件及特殊文件存储位置;

    • /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 cache: 应用程序缓存数据目录

      • lib: 应用程序状态信息数据local:专用于为/usr/local下的应用程序存储可变数据; lock: 锁文件 log: 日志目录及文件
      • opt: 专用于为/opt下的应用程序存储可变数据;

        • run: 运行中的进程相关数据,通常用于存储进程pid文件

        • spool: 应用程序数据池

        • tmp: 保存系统两次重启之间产生的临时数据

    • /proc: 用于输出内核与进程信息相关的虚拟文件系统

    • /sys:用于输出当前系统上硬件设备相关信息虚拟文件系统

    • /selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置

  • (4)linux下文件类型
    • -普通文件
    • d 目录文件
    • b 块设备
    • c 套接字文件
    • p 管道文件
    • l 符号链接文件

2、管理文件的命令介绍

下面接受的命令都是通过man帮助进行查找并列出常用的选项,仅供参考。如果需要请移步到(linux获取命令帮助详解)[http://blog.csdn.net/joah_li/article/details/75267637]

  • (1)cd命令 Change the shell working directory.

    • usage: cd [-L|-P] [dir]

      • -L force symbolic links to be followed

        [aaa@qq.com fd]#cd -L /dev/fd
        [aaa@qq.com fd]#pwd
        /dev/fd

      • -P use the physical directory structure without following symbolic
        links #切换实际路径路径

        [aaa@qq.com fd]#cd -P /dev/fd
        [aaa@qq.com fd]#pwd
        /proc/34873/fd

    • 常用技巧
      • cd - 切换到上一级目录
      • cd ..切换至父目录
      • cd ~切换至当前用户主目录
        可以通过变量修改上一级目录(OLDPWD)和主目录(PWD)
  • (2) ls命令 list directory contents
    • usage : ls [OPTION]… [FILE]…
      • -a 显示包含隐藏文件的所有文件
      • -d 列出目录
      • -l 用长格式列出文件信息
      • -R 递归显示
      • -r 方向排序
      • -t 通过mtime时间进行排序
      • –time=WORD 可选选项为atime,mtime,ctime
      • -1 每行只列出一个文件信息
  • (3)touch命令 change file timestamps
    - usage :touch [OPTION]… FILE…
    - a 仅改变atime和ctime
    - -m 仅改变mtime和ctime
    - t use [[CC]YY]MMDDhhmm[.ss] instead of current time 指定atime和mtime时间戳
    - -c 如果文件不存在,则不予创建

  • (4) cp命令 copy files and directories
    - usage :

    cp [OPTION]… [-T] SOURCE DEST
    cp [OPTION]… SOURCE… DIRECTORY
    cp [OPTION]… -t DIRECTORY SOURCE…

        - -a --archive 相当于 -dR --preserve=all 归档
        -- f ,--force 如果一个目标文件存在删除并覆盖
        - -i  ,--interactive 交换式
        - -d,--no-dereference --preserve 不复制元文件,只复制链接名;
        - --preserve[=ATTR_LIST]
                        mode: 权限
                        ownership: 属主属组 
                        timestamp: 时间戳
                        links 
                        context
                        all
        - -p当同于--preserve=mode,owership,timestamp
        - -P --no-dereference 复制文件全部信息
        - -v 显示复制过程
                - cp -a /etc/issue{,bak} 备份文件
    
  • (5)mv 命令 move (rename) files

    • usage :

      mv [OPTION]… [-T] SOURCE DEST
      mv [OPTION]… SOURCE… DIRECTORY
      mv [OPTION]… -t DIRECTORY SOURCE…

    • -i 交换式

    • -f 强制
    • -v 显示过程
  • (6)rm remove files or directories

    • usage:rm [OPTION]… FILE…
      • -i 交换式
      • -f 强制删除
      • -r 递归 –no-preeserve-root
        * 此命令注意使用,比较危险,建议将此文件别名;如果要删除文件,可以模拟一个回收站存文要删除的文件。*
  • (7)mkdir命令 make directories

    • usage :mkdir [OPTION]… DIRECTORY…
      • p 如果父目录不存在时,且可自动创建所需的各目录
      • -v 显示详细信息
      • -m MODE:创建目录时直接指定权限
  • (8)file determine file type

    • usage :

      file [-bchikLNnprsvz0] [–apple] [–mime-encoding]
      [–mime-type] [-e testname] [-F separator]
      [-f namefile] [-m magicfiles] file …
      file -C [-m magicfiles]
      file [–help]

      • -b 列出文件辨别结果时,不显示文件名称
      • -f filelist 列出文件filelist中文件名的文件类型
      • -F 使用分隔符号替换输出文件名后默认的“:”分隔符
      • -L 查看对应软连接对应文件的文件类型
      • –help 显示命令在线帮助

3、软连接和硬链接

1、创建硬链接 - 创建硬链接会增加额外的记录项以引用文件

  • usage:ln filename [linkname]
  • 特征:
    • 对应于同一个文件系统上一个物理文件
    • 每个目录引用相同的inode号
    • 创建时硬链接数递增
    • 不能跨越驱动器或分区

2、创建软链接 - 一个符号链接指向另一个文件

  • usage:ln -s filename [linkname]
  • 特征:
    • 一个符号链接的内容是它引用文件的名称
    • 可以对目录进行
    • 可以跨分区
    • 指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的引用计数;

4、inode (index node)表中包含文件系统所有文件列表


  • 一个节点 (索引节点)是在一个表项,包含有关文件的信息( 元数据 ),包括:

文件类型,权限,UID,GID
链接数(指向这个文件名路径名称个数)
该件的大小和不同的时间戳
指向磁盘上文件的数据块指针
有关文件的其他数据

在 CP的 命令:

   分配一个空闲的inode号,在inode表中生成新条目在目录中创建一个目录项,将名称与inode编号关联,拷贝数据生成新的文件

rm 命令:

   链接数递减,从而释放的inode号可以被重用把数据块放在空闲列表中删除目录项

mv 命令

  如果mv命令的目标和源在相同的文件系统,作为mv 命令用新的文件名创建对应新的目录项删除旧目录条目对应的旧的文件名不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动!
  如果目标和源在一个不同的文件系统, mv相当于cp和rm。

linux文件管理linux文件管理

5、其他

cp命令的复制原理

cp [OPTION]… [-T] SOURCE DEST
SRC是文件:如果目标不存在:新建DEST,并将SRC中内容填充至DEST中;
如果目标存在:
如果DEST是文件:将SRC中的内容覆盖至DEST中。

cp [OPTION]… SOURCE… DIRECTORY
SRC…:多个文件
DEST必须存在,且为目录,其它情形均会出错;

cp [OPTION]… -t DIRECTORY SOURCE..
SRC是目录:此时使用选项:-r
如果DEST不存在:则创建指定目录,复制SRC目录中所有文件至DEST中;
如果DEST存在:
如果DEST是文件:报错如果DEST是目录。

linux文件管理