首页 > 系统相关 >深入理解linux文件

深入理解linux文件

时间:2023-10-21 14:33:52浏览次数:40  
标签:tmp 文件 深入 ztx linux root 链接 zutuanxue

一、linux的文件存储

假如有一个用户在linux系统中编辑了一个文件,编辑完内容后,关闭编辑器时会问用户改如何命名这个文件,设置完名称之后会选择一个目录将该文件保存到指定目录下,在这个例子中包含了linux系统中与文件相关的三个组成部分

  • 数据:就是文件的内容,保存在一个叫data(数据块)的结构中
  • 元数据:保存一个文件的特征的系统数据,用来保存除了文件内容和文件名以外的与文件相关的信息, 诸如文件的创建者,日期,大小等等,保存在一个叫inode(i节点)的结构中。
  • 文件名:用来保存文件名称,文件名保存在一个叫dentry(目录项)的结构中。

二、i节点介绍

通过前面的课程我们知道,inode是用来保存文件的元数据的,除此之外还保存文件相关属性信息,如链接数等。我们通过类似stat hello.txt这条命令查看指定文件的inode信息。

三、链接文件介绍

Linux中如果用户想把同一个文件保存在两个地方,或用两个不同的文件名保存,除了复制之外还有另外一种选择,就是链接,在linux系统中链接分为硬链接,软链接,空链接,递归链接等

链接命令: ln

语法:
ln 源文件路径 链接位置路径

常用命令选项:

-s 创建软连接

-f 强制执行

-i 交互模式,文件存在则提示用户是否覆盖

-n 把符号链接视为一般目录,显示为一般文件

-v 显示详细的处理过程
  • 硬链接:允许一个文件拥有多个有效路径名,这样用户就可以建立硬链接到重要的文件,以防止“误删”源数据,不过硬链接只能在同一文件系统中的文件之间进行连接
  • 软链接 : 也叫符号链接,类似于windows系统中的快捷方式,与硬链接不同,软链接就是一个普通文件,软链接可对文件或目录创建。

这是概念上的描述,我们用一句话来将这两种链接进行总结:

a、硬链接不能链目录,不能跨文件系统,软链接可以;

b、源文件删除后软链接失效,硬链接依然可用;

我们通过下面的例子可以看到硬链接和软链接的创建方式以及基本对比

软连接

# 在root家目录下创建一个文件ztx
[root@zutuanxue ~]# touch ztx

# 为/root/ztx文件创建一个软连接文件在/tmp目录下
[root@zutuanxue ~]# ln -s /root/ztx /tmp/

# 验证快捷方式是否创建成功
[root@zutuanxue ~]# ls -l /tmp/ztx 
lrwxrwxrwx 1 root root 9 11月 26 15:06 /tmp/ztx -> /root/ztx

# 查看源文件和链接文件的i节点信息
[root@zutuanxue ~]# ls -i /root/ztx /tmp/ztx 
674632 /root/ztx  929916 /tmp/ztx    # 发现软连接的文件i节点不同

# 删除源文件
[root@zutuanxue ~]# rm -f /root/ztx
 
# 验证链接文件是否可用
[root@zutuanxue ~]# cat /tmp/ztx 
cat: /tmp/ztx: 没有那个文件或目录    #删除源文件发现链接文件失效

硬链接

# 创建一个源文件  名字为组团学
[root@zutuanxue ~]# touch zutuanxue   

# 为/root/zutuanxue文件创建一个硬链接文件 到/tmp/zutuanxue
[root@zutuanxue ~]# ln /root/zutuanxue /tmp/zutuanxue   

# 查看源文件和链接文件的i节点
[root@zutuanxue ~]# ls -i /root/zutuanxue /tmp/zutuanxue 
674632 /root/zutuanxue  674632 /tmp/zutuanxue  # 硬链接的i节点和源文件的i节点一致

# 删除源文件,看看硬链接文件是否可用
[root@zutuanxue ~]# echo test > /root/zutuanxue 
[root@zutuanxue ~]# rm /root/zutuanxue 
rm:是否删除普通文件 "/root/zutuanxue"?y
[root@zutuanxue ~]# cat /tmp/zutuanxue 
test			#删除硬链接源文件后,发现链接文件依然可以使用

除了上面我们说到的硬链接和软链接之外还有

  • 空链接,所谓的空链接就是软链接指向的源文件不存在了,包括源文件被删除,改名。
  • 递归链接:递归链接不如空链接常见,如果想看的话几乎需要专门寻找,如果用户创建两个软链接,linka与linkb关联,而linkb又与linka关联,这时候就会出现递归链接,比如

1571130770456.png

  • 绝对软链接和相对软链接:主要指的是用户在创建软链接的时候使用的是绝对路径还是相对路径来指定链接目标,如果链接创建完成之后不会移动,那么这两种方法可以随意使用,但是如果链接文件需要被移动,那么建议还是使用绝对路径,比如

1571132049532.png

好了链接我们就说到这里,下面我们看一下时间戳

四、时间戳

时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数。通俗的讲, 时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。 它的提出主要是为用户提供一份电子证据, 以证明用户的某些数据的产生时间。 当我们使用stat命令查看文件的时候除了创建时间你会发现有三个跟时间戳相关的信息

1571133239914.png

1571133272500.png

缩写 命令 目的
Atime 访问时间 文件数据每次被阅读后的更新
Ctime 改变时间 文件的i-节点信息每次被改变后都更新
Mtime 修改时间 文件数据每次被改变后的更新

五、常用目录管理命令总结

  • 目录:
命令 用法 功能
mkdir mkdir 目录名称 创建一个目录
rmdir rmdir 目录名称 删除一个空目录
cd cd 目录名称 进入一个目录
ls ls 目录名称 列出一个目录内容
  • 文件:
命令 用法 功能
touch touch 文件名 新建一个文件
rm rm 文件名 删除一个文件
cat cat 文件名 打印一个文件内容
  • 其他:
命令 用法 功能
cp mkdir file folder 将文件file拷贝到目录folder
mv mv A B 移动A到B目录或者从命名 A为B
ln ln -s A B 给A做一个快捷方式,放到B位置

标签:tmp,文件,深入,ztx,linux,root,链接,zutuanxue
From: https://www.cnblogs.com/yihr/p/17778924.html

相关文章

  • linux 磁盘分区与格式化
    一、基本分区管理1.1、linux磁盘表示方法介绍硬盘命名方式OSIDE(并口)SATA(串口)SCSICentOS6/dev/hda/dev/sda/dev/sdaCentOS7/dev/sda/dev/sda/dev/sdaCentOS8/dev/sda/dev/sda/dev/sda磁盘设备的命名/dev/sda2s=硬件接口类型(sata/scsi),d=dis......
  • linux内核编译安装(Ubuntu替换内核)
    前言:Ubuntu替换内核一般是不会删除自己Ubuntu里面的东西的(只是内核改变,其它影响,放心搞就是了,而且可以变回原来的内核)实验环境:OS:Ubuntu20.04.2LTSOldKernel:linux5.15.0NewKernel:linux5.15.0(我测试过的只有原版本,升级其它版本试了不能开机)注:查看当前内核版本命令"uname......
  • js 大文件切片,中止上传,上传进度,断点续传
    大文件切片上传背景介绍:当涉及大文件上传时,一种有效的方法是将大文件分割成小切片并逐个上传。这种技术不仅可以减轻服务器的负担,还可以避免上传过程中的中断和内存问题。本文将介绍如何使用JavaScript实现大文件切片上传,并解释如何处理断点续传、并发控制以及上传取消等问题,用到......
  • 文件描述符fd
    目录在tcp的服务器端,有两类文件描述符监听的文件描述符只需要有一个不负责和客户端通信,负责检测客户端的连接请求,检测到之后调用accept就可以建立新的连接通信的文件描述符负责和建立连接的客户端通信如果有N个客户端和服务器建立了新的连接,通信的文件描述符就......
  • Linux命令(99)之rz
    linux命令之rz1.rz介绍linux命令rz是用来把文件从windows等平台上传到Linux上2.rz用法rz[参数]filerz参数参数说明-b使用binary的方式上传,不解释字符为ascii-y相同文件名,覆盖-E相同文件名,不会将其覆盖,而是会在所上传文件后面加上.0,以此类推3.实例3.1.上传文件,相同文件名,进行覆盖......
  • springboot 配置文件元数据
    springboot配置文件元数据1.spring-configuration-metadata.json{"groups":[{"name":"management.appoptics.metrics.export","type":"org.springframework.boot.actuate.autoconfigure.metrics.export.app......
  • Unix/Linux系统编程自学笔记-第三章:Unix/Linux进程管理
    Unix/Linux系统编程自学笔记-第三章:Unix/Linux进程管理1、概念介绍多任务处理计算机技术概念中的多任务处理指的是同时执行若干独立任务。无论是在多处理机系统还是单处理机系统都可以实现多任务处理。对于单处理机系统,多任务处理的实现依靠着多路复用技术,通过上下文的快速......
  • 12、Linux中shell脚本
    Linux中shell脚本目录Linux中shell脚本一、基础知识1、第一个shell脚本程序2、shell变量定义3、shell变量的赋值、修改、删除4、shell特殊变量二、脚本使用1、静态IP修改-交互式脚本2、主机存活探测-if脚本3、主机存活探测-for脚本4、主机存活探测-while脚本5、纯净查杀-case脚本......
  • Linux (7) NetworkManager重置resolve.conf
    《WindowsAzurePlatform系列文章目录》 在默认情况下,AzureLinuxVM会安装waagent,而waagent会依赖于NetworkManager服务。当我们修改了resolve.conf的时候,如果重启NetworkManager或者重启了LinuxVM,NetworkManager会重置resolve.conf。 目前有两个......
  • docker cp 命令 - 宿主机与容器互相拷贝文件
    一、从容器拷贝文件到宿主机命令格式:$dockercp<containder-id>:/path/host/path例子:$dockercpc9b7f17d43e9:/opt/hello.txt/home/hello.txt二、从宿主机拷贝文件到容器命令格式:$dockercp/host/path<containder-id>:/path例子:$dockercp/home/hel......