美文网首页
Linux文件目录详解

Linux文件目录详解

作者: 沐熙一叶_Leaf | 来源:发表于2020-12-06 18:32 被阅读0次

    CentOS7 文件目录

    • bin :存放普通用户可执行的指令,即使在单用户模式下也能够执行处理
    • boot :开机引导目录,包括Linux内核文件与开机所需要的文件
    • dev :设备目录,所有的硬件设备及周边均放置在这个设备目录中
    • etc:各种配置文件目录,大部分配置属性均存放在这里
    • home:这里主要存放你的个人数据,具体每个用户的设置文件,用户的桌面文件夹,还有用户的数据都放在这里。每个用户都有自己的用户目录,位置为:/home/用户名。当然,root用户除外。
    • lib:开机时常用的动态链接库,bin及sbin指令也会调用对应的lib库
    • lib64:开机时常用的动态链接库64位,bin及sbin指令也会调用对应的lib库
    • media:可移除设备挂载目录,类似软盘 U盘 光盘等临时挂放目录
    • mnt:用户临时挂载其他的文件系统,额外的设备可挂载在这里,相对临时而言
    • opt:第三方软件安装目录,现在习惯性的放置在/usr/local中
    • proc:虚拟文件系统,通常是内存中的映射,特别注意在误删除数据文件后,比如DB,只要系 统不重启,还是有很大几率能将数据找回来
    • root:系统管理员主目录,除root之外,其他用户均放置在/home目录下
    • run:系统运行是所需文件,以前防止在/var/run中,后来拆分成独立的/run目录。重启后重新生成对应的目录数据
    • sbin:只有root才能运行的管理指令,跟bin类似,但只属于root管理员
    • srv:服务启动后需要访问的数据目录,
    • sys:跟proc一样虚拟文件系统,记录核心系统硬件信息
    • tmp:存放临时文件目录,所有用户对该目录均可读写
    • usr:应用程序放置目录,
    • var :存放系统执行过程经常改变的文件

    文件元数据

    • 文件名称
    • 文件大小
    • 对应的设备
    • 文件对应的权限
    • 所处环境
    • 最近访问时间
    • 最近更改时间
    • 最近改动时间,这个时间没法手动调整
    #查看原数据信息
    [root@localhost ~]# stat test.txt
    #访问时间改为当前系统时间
    [root@localhost ~]# touch -a test.txt 
    #更改时间改为当前系统时间
    [root@localhost ~]# touch -m test.txt
    #将访问时间和更改时间改为2020年1月12日
    [root@localhost ~]# touch -t 2001120000.00 test.txt 
    

    软连接和硬连接

    硬链接
    • 创建硬链接会在对应的目录中增加额外的记录项以引用文件
    • 对应于同一文件系统上一个物理文件
    • 每个目录引用相同的inode号
    • 创建时链接数递增
    • 删除文件时:rm命令递减计数的链接,文件要存在,至少有一个链接数,当链接数为零时,该文件被删除
    • 不能跨越驱动器或分区
    • 不支持对目录创建硬链接
    软连接
    • 一个符号链接的内容是它引用文件的名称
    • 可以对目录创建软链接
    • 可以跨分区的文件实现
    • 指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的引用计数
    • 软链接如果使用相对路径,是相对于原文件的路径,而非相对于当前目录
    硬链接和软连接的区别
    1. 本质:
      硬链接:本质是同一个文件
      软链接:本质不是同一个文件
    2. 跨设备
      硬链接:不支持
      软链接:支持
    3. inode
      硬链接:相同
      软链接:不同
    4. 链接数
      硬链接:创建新的硬链接,链接数会增加,删除硬链接,链接数减少
      软链接:创建或删除,链接数不会变化
    5. 文件夹
      硬链接:不支持
      软链接:支持
    6. 相对路径
      硬链接:原始文件相对路径是相对于当前工作目录
      软链接:原始文件的相对路径是相对于链接文件的相对路径
    7. 删除源文件
      硬链接:只是链接数减一,但链接文件的访问不受影响
      软链接:链接文件将无法访问
    8. 文件类型
      硬链接:和源文件相同
      软链接:链接文件,和源文件无关
    实例:
    #创建对应的
    [root@localhost ~]# mkdir -p /data/dir
    #绝对路径
    [root@localhost ~]# ln -s /data/dir /data/dirlink
    #相对路径
    [root@localhost ~]# ln -s ../data/dir /root/dirlink
    #删除软链接本身,不会删除源目录内容
    [root@localhost ~]# rm -rf /data/dirlink 
    #删除源目录的文件,不会删除链接文件
    [root@localhost ~]# rm -rf /data/dirlink/ 
    

    文件操作命令

    pwd

    显示当前路径

    • -P 显示真实物理路径
    • -L 显示链接路径(默认
    cd

    改变目录

    • 切换至父目录: cd ..
    • 切换至当前用户主目录: cd
    • 切换至以前的工作目录: cd –
    ls

    列出当前目录的内容或指定目录

    • -a 包含隐藏文件
    • -l 显示额外的信息
    • -R 目录递归
    • -ld 目录和符号链接信息
    • -1 文件分行显示
    • -S 按从大到小排序
    • -t 按mtime排序
    • -u 配合-t选项,显示并按atime从新到旧排序
    • -U 按目录存放顺序显示
    • -X 按文件后缀排序
    file

    检查文件的类型

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

    命令可以用来创建空文件或刷新文件的时间

    • -a 仅改变 atime和ctime
    • -m 仅改变 mtime和ctime
    • -t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的时间戳
    • -c 如果文件不存在,则不予创建
    stat

    查看文件状态

    cp

    可以实现文件或目录的复制

    • -i 如果目标已存在,覆盖前提示是否覆盖
    • -n 不覆盖,注意两者顺序
    • -r, -R 递归复制目录及内部的所有内容
    • -a 归档,相当于-dR --preserv=all,常用于备份功能
    • -d --no-dereference --preserv=links 不复制原文件,只复制链接名
    • -p 等同--preserv=mode,ownership,timestamp
    • -v --verbose
    • -f --force
    • -u --update 只复制源比目标更新文件或目标不存在的文件
    • -b 目标存在,覆盖前先备份,默认形式为 filename~ ,只保留最近的一个备份
    • --backup=numbered 目标存在,覆盖前先备份加数字后缀,形式为 filename.# ,可以保留多 个版本
    mv

    移动文件或目录的移动和改名

    • -i 交互式
    • -f 强制
    • -b 目标存在,覆盖前先备份
    rm

    可以删除文件

    • -i 交互式
    • -f 强制删除
    • -r 递归
    • --no-preserve-root 删除/
    tree

    显示目录树

    • -d: 只显示目录
    • -L level:指定显示的层级数目
    • -P pattern: 只显示由指定wild-card pattern匹配到的路径
    mkdir

    创建目录

    • -p: 存在于不报错,且可自动创建所需的各目录
    • -v: 显示详细信息
    • -m MODE: 创建目录时直接指定权限
    rmdir

    删除空目录

    • -p 递归删除父空目录
    • -v 显示详细信息

    删除首行空白字符

    [root@localhost ~]#cp -a /etc/profile /tmp/
    [root@localhost ~]#vim /tmp/profile
    ......
    if [ -n "${BASH_VERSION-}" ] ; then
            if [ -f /etc/bashrc ] ; then
                    # Bash login shells run only /etc/profile
                    # Bash non-login shells run only /etc/bashrc
                    # Check for double sourcing is done in /etc/bashrc.
                    . /etc/bashrc
           fi                                                                                                                                   
    fi
    ......
    :%s/  *//g
    [root@localhost ~]#vim /tmp/profile
    ......
    if[-n"${BASH_VERSION-}"];then
    if[-f/etc/bashrc];then
    #Bashloginshellsrunonly/etc/profile
    #Bashnon-loginshellsrunonly/etc/bashrc
    #Checkfordoublesourcingisdonein/etc/bashrc.
    ./etc/bashrc
    fi
    fi 
    ......
    #可以看到所有首行的空白都删除了
    

    vim 环境变量设置

    tab 键设置为4个空格

    [root@localhost ~]# vim ~/.vimrc
    set ts=4
    set expandtab
    set autoindent
    

    相关文章

      网友评论

          本文标题:Linux文件目录详解

          本文链接:https://www.haomeiwen.com/subject/jodiwktx.html