西藏自治区网站建设_网站建设公司_Figma_seo优化
2026/1/5 18:11:35 网站建设 项目流程

Linux文件属性及相关命令

1. 文件属性体系

1.1 概述

image

1.2 inode与block部分

1)概述

  • inode(索引节点):
    • inode 号码:类似身份证号,通过它能定位到文件内容
    • inode 是一个存储空间,inode 号是这个空间的标识;inode 空间存储的信息包括:
      1. 文件属性信息(文件大小、修改时间、权限、所有者等)
      2. block(数据块)的位置(相当于指向文件实际数据的指针)
      3. 不存储文件名
  • block(数据块):专门用来存放文件的实际数据

2)inode和block的关系

  • 用户访问查看 oldboy.txt 文件内容的流程:
    1. 用户访问 oldboy.txt 的时候,系统会根据文件 inode 号码找出它对应的 inode 空间
    2. 访问来到 inode 空间后,确认用户确认权限
    3. 权限信息正确就准许通过,可以访问 inode 对应的 block 区域(数据)

image

3) inode和block特点

  • inode 索引节点,存放文件属性信息,block 位置。
  • 每创建 1 个非空文件至少占用 1 个 inode,1 个 block,一般文件都要有 1 个 inode。
  • 1 个 block 默认是 4k。
  • inode,block 数量是在格式化的时候创建的。
  • 正常情况下 block 的使用会更快。
  • 创建小文件不足 4k,1 个 block 还有剩余空间,无法给其他文件使用。
  • 创建文件大于 4k,占用多个 block。

4)如何查看

  • 查看 block 的使用情况命令:(平时说的磁盘空间) df -h 磁盘空间使用情况
  • 查看 inode 的使用情况命令: df -i

注:文件名是存放在目录的 block 中的,没有存放在 inode 中,所以文件名不是文件属性。

1.3 文件类型部分

1)windows与linux文件类型区别

  • 这里熟悉 Linux 和 windows 扩展名即可。

  • windows 下面通过扩展名的区分不同文件类型,如果扩展名修改则无法使用。

    示例:微信.exe 游戏.exe lidao.avi 4k-blue-ray.torrent

  • Linux 下面扩展名仅仅用于展示,随意修改。(但是推荐大家创建文件的时候给他加上。)

常用的扩展名 说明
.txt 普通文件
.sh .bash shell 脚本
.conf .cfg .xml .yaml .yml 配置文件
.py python 脚本文件

2)Linux文件类型

Linux 常见文件类型 含义
- 文件 file,范围较广。
d 目录 directory
l 软连接,类似于 windows 快捷方式。
c 字符设备 char 特殊文件,不断输出,吸入
b 块设备 block 硬盘
s 套接字 socket 文件
p 管道文件

image

3)如何查看文件类型

  • file 命令查看详细文件类型
文件的分类 说明
text 普通文件(文本文件),我们日常可以查看或直接修改,平时书写就是这种,脚本。
data 数据文件,需要用专用命令查看。比如压缩包。
二进制文件 大部分都是命令。
[root@oldboy-king ~]# file  /etc/hostname /var/log/wtmp /bin/ls
/etc/hostname: ASCII text
/var/log/wtmp: data
/bin/ls:       ELF 64-bit LSB executable, x86-64,version 1 (SYSV), dynamically linked (uses shared
libs), for GNU/Linux 2.6.32,BuildID[sha1]=aaf05615b6c91d3cbb076af81aeff531c5d7dfd9, stripped

1.4 软硬链接

1) 概述

  • 软链接:类似于 windows 中快捷方式,也是一种文件;用于存放源文件的路径 (位置 + 名字),应用最多。
  • 硬链接:在同一个分区中,不同的文件的 inode 号码相同了,这些文件互为硬链接,很少使用。

2)如何创建

  • ln (link) 创建软连接或硬链接,默认创建硬链接。
  • 创建软连接
  • ln -s 源文件 软连接文件
#准备新的环境 new目录
mkdir -p /oldboy/new
cd /oldboy/new/#创建源文件
[root@oldboy-lnb-king-v3 new]# touch oldboy.txt
[root@oldboy-lnb-king-v3 new]# ll
总用量 0
-rw-r--r--. 1 root root 0 12月  1 11:22 oldboy.txt#创建软连接
[root@oldboy-lnb-king-v3 new]# ln -s oldboy.txt oldboy.txt_soft[root@oldboy-lnb-king-v3 new]# ll
总用量 0
-rw-r--r--. 1 root root  0 12月  1 11:22 oldboy.txt
lrwxrwxrwx. 1 root root 10 12月  1 11:23 oldboy.txt_soft -> oldboy.txt #可以发现软连接指向源文件#从源文件位置写入内容
[root@oldboy-lnb-king-v3 new]# echo lidao >>oldboy.txt[root@oldboy-lnb-king-v3 new]# cat oldboy.txt
lidao#从软连接位置写入内容
[root@oldboy-lnb-king-v3 new]# echo lidao soft >>oldboy.txt_soft
[root@oldboy-lnb-king-v3 new]# cat oldboy.txt
lidao
lidao soft[root@oldboy-lnb-king-v3 new]# cat oldboy.txt_soft
lidao
lidao soft#创建绝对路径的软连接
[root@oldboy-lnb-king-v3 new]# ln -s /oldboy/new/oldboy.txt   oldboy.txt_soft_jue
[root@oldboy-lnb-king-v3 new]# ll
总用量 4
-rw-r--r--. 1 root root 17 12月  1 11:24 oldboy.txt
lrwxrwxrwx. 1 root root 10 12月  1 11:23 oldboy.txt_soft -> oldboy.txt
lrwxrwxrwx. 1 root root 22 12月  1 11:24 oldboy.txt_soft_jue -> /oldboy/new/oldboy.txt
#成功如果源文件被删除或改名或移动走,软连接会如何?
会红色闪烁,失效
  • 硬链接
[root@oldboy-lnb-king-v3 new]# ln oldboy.txt oldboy.txt_hard
[root@oldboy-lnb-king-v3 new]# ll
总用量 8
-rw-r--r--. 2 root root 17 12月  1 11:24 oldboy.txt
-rw-r--r--. 2 root root 17 12月  1 11:24 oldboy.txt_hard
lrwxrwxrwx. 1 root root 22 12月  1 11:42 oldboy.txt_soft_jue -> /oldboy/new/oldboy.txt##inode号相同
[root@oldboy-lnb-king-v3 new]# ll -i
总用量 8
67187641 -rw-r--r--. 2 root root 17 12月  1 11:24 oldboy.txt
67187641 -rw-r--r--. 2 root root 17 12月  1 11:24 oldboy.txt_hard
67187644 lrwxrwxrwx. 1 root root 22 12月  1 11:42 oldboy.txt_soft_jue -> /oldboy/new/oldboy.txt[root@oldboy-lnb-king-v3 new]# echo lidao >oldboy.txt[root@oldboy-lnb-king-v3 new]# echo lidao996 >>oldboy.txt_hard[root@oldboy-lnb-king-v3 new]# cat oldboy.txt
lidao
lidao996[root@oldboy-lnb-king-v3 new]# cat oldboy.txt_hard
lidao
lidao996

3)软连接硬链接区别

image

  • 啥意思
    • 软连接 (符号链接) softlink/symlink,类似于 windows 快捷方式,存放源文件的位置。
    • 硬链接:同一个分区中 inode 号码相同的文件,互为硬链接。
  • 咋来的
    • 软连接通过ln -s创建,硬链接通过ln创建。
  • 特点
    • 软连接是比较常用的,可以给文件、目录创建。
    • 硬链接只能给文件创建,不能跨分区,无法给目录创建硬链接,较少使用。
  • 咋没的
    • 删除软连接,源文件不受影响。
    • 删除源文件,软连接无法使用,红底白字闪烁。
    • 删除硬链接,源文件、软连接无影响。
    • 删除源文件和硬链接,这个文件就被删除了。

1.5 文件大小

  • 查看文件大小
ll -h  /etc/hosts
ll -h /etc/
  • 查看目录大小
du -sh /etc/
-h 人类可读形式显示大小.
-s 不要显示目录中所有的子目录了,只显示汇总信息,不显示所有查看指定目录所占的空间.(block)

1.7 时间

Linux 文件时间 说明
mtime modify 修改时间,最常用。
atime access 访问时间
ctime change 文件属性的变化时间
  • stat 查看文件的属性信息 + 文件名

2. 打包压缩三剑客

备份单个文件就是cp即可,备份多个文件或目录推荐使用打包压缩

2.1 概述

压缩命令 应用场景
tar 大部分使用 tar 即可。创建,查看,解压,解压到指定目录。
gzip 一般配合其他命令使用。
zip、unzip 一般用于解压 zip 格式的压缩包(unzip)

2.2 tar

  • windows 压缩
  • linux 打包压缩
    • 打包 (文件放在一起) tar
    • 压缩 (进行压缩,节约空间) tar 命令的选项
  • tar 命令要熟练掌握的功能:
    • 创建压缩包
    • 查看压缩包
    • 解压压缩包
    • 解压压缩包到指定目录
tar 命令 选项与说明
创建 zcf tar zcf 压缩包 被压缩的文件/目录 ....
查看 tf tar tf /tmp/etc.tar.gz
解压 xf tar xf /tmp/etc.tar.gz

1) 创建压缩包

#请把/etc/目录压缩,压缩包放在/tmp/etc.tar.gz
tar zcvf   /tmp/etc.tar.gz  /etc/
tar zcf   /tmp/etc.tar.gz  /etc/
v verbose 显示过程(未来不加)
c create 创建包(打包),如果只放cf选项就是打包,不压缩。
z gzip    tar命令创建包后,通过gzip压缩工具进行压缩。  
所以:tar打包 gz压缩 扩展名.tar.gz
f file   指定压缩包,f选项放在这几个选项的最后。

2)查看压缩包内容

tar ztvf  /tmp/etc.tar.gz
tar tf  /tmp/etc.tar.gz
t list 列表,查看压缩包内容.

3) 解压压缩包

tar zxvf /tmp/etc.tar.gz
tar xf /tmp/etc.tar.gz  
x extract 解压

4)解压到指定目录

解压etc.tar.gz 到/mnt目录下
-C解压到指定目录
tar xf 压缩包 -C 解压后的存放目录
tar xf  /tmp/etc.tar.gz -C /mnt/

5) tar: 从成员名中删除开头的“/”

  • 结论:是个警告而已,可以忽略。
1 tar: Removing leading '/' from member names
  • 由来:
    • 这个是 tar 命令的安全保护机制。
    • 提示出现的原因,我们打包的目标目录或文件是绝对路径。
    • 把我们使用的绝对路径转换为相对路径。
    • 为了防止压缩包中保留绝对路径,解压的时候可能发生覆盖,导致数据,配置丢失。
  • 避免提示:使用相对路径打包。
cd /
tar zcf  /tmp/etc.tar.gz  etc/
这里使用相对路径打包, 提示警告消失了。

2.3 gzip

  • 创建 gz 压缩包
touch lidao.txt
gzip lidao.txt
ll lidao.txt.gz
  • 解压
gzip -d lidao.txt.gz

2.4 zip/unzip

压缩
zip  -r  etc.zip  /etc/
-r用于压缩目录
解压
unzip etc.zip如果命令没有请yum安装 yum install -y unzip

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询