Linux文件链接的介绍及其应用

linux中对文件的链接分为两种,一种是硬链接,另一种是软链接。今天和大家介绍下这两种链接,以及如何去使用他们。

硬链接

首先我们来看硬链接,我们来用php中变量的引用来对比吧。

$a = 100;$b = &$a;

可以将$a看做是一个文件,而$b看出是$a文件的硬链接。现在的作用是,不管是$a或$b作了修改,都会影响到对方。

那现在将其中一个文件删除,另一个文件还存在吗?

unset($b);

即使删除了$b文件,$a文件还是存在的。

下面,我们来看看是不是和上面所说一样。创建硬链接的命令如下:

ln 源文件 链接文件

目前系统有一个1.php文件,现在我们来给他创建个硬链接。

# ln 1.php 2.php# cat 1.php<?php$a = 100;$b = &$a;$b = 1000;echo $a;

现在我们来修改下2.php文件,看看1.php文件是否也会被修改。

# echo -e 'n?>' >> 2.php# cat 1.php

可以看到,修改了2.php,1.php文件也会被修改。现在我们来删除2.php文件,看看1.php文件是否还存在。

# rm -f 2.php# ll 1.php-rw-r--r-- 1 root root 52 Jun 20 08:05 1.php

可以看到,即使删除了2.php,1.php文件依旧是存在的。

上面介绍了硬链接的作用,下面来说下硬链接在使用时候的限制:

不能链接目录

不能跨文件系统来做链接

由于以上两点的限制导致日常使用硬链接的机会很少,下面介绍另外一种链接——软链接,它没有上述的限制,所以平时用的很多哦!。

软链接

一般会将软链接和windows系统中的桌面快捷方式来对比,通过创建软链接可以很方便的执行一个命令,而不用去找文件的目录位置。另外,删除了软链接文件,源文件依旧存在。但是,如果删除了源文件,那么链接文件就没有作用了。

软链接分为文件及目录两种,下面分别介绍下这两种链接的作用。

AppMall应用商店 AppMall应用商店

AI应用商店,提供即时交付、按需付费的人工智能应用服务

AppMall应用商店 56 查看详情 AppMall应用商店

给文件做软链接

你有没有想过,为什么你安装好了mysql后,不用使用绝对路径,就可以使用mysql来执行。这里面就是使用到了软链接。

# which mysql/usr/bin/mysql# ll /usr/bin/mysqllrwxrwxrwx 1 root root 26 Nov  4  2019 /usr/bin/mysql -> /usr/local/mysql/bin/mysql

可以看出,该命令的实际地址是/usr/local/mysql/bin/mysql,但是给该文件做了软链接到了/usr/bin/目录下,所以就不用使用绝对路径即可调用该命令了。

下面我们自己做一个文件软链接,看是不是这样的。

首先创建一个文件soft.sh

vim soft#!/bin/bashecho 'study softlink'# chmod u+x soft

然后给该文件创建软链接,看看直接执行该命令是不是可以了

# ln -s /root/soft  /usr/bin/# softstudy softlink

给目录做软链接

首先,我们需要注意的是,做软链接时,目标文件或目录必须不存在。

下面,我们引出一个场景,该场景非常的常见:

网站文件存放在/www/wwwroot目录下,随着系统运行时间越来越差,该目录越来越大,由于该目录是和根目录在同一个分区,根目录快要写满了。而另外一个分区目录/data还剩99G剩余空间。这时候,不想重新分区,那么需要怎样做才能使得根目录所在分区取得解放。

下面,我们使用目录软链接来解决该问题。首先,在/data目录下建立wwwroot目录,然后将/www/wwwroot目录下所有文件移动到/data/wwwfile下,再删除/www/wwwroot目录。最后给/data/wwwfile目录软链接到/www/wwwroot

mkdir /data/wwwfilemv /www/wwwroot/* /data/wwwfilerm -rf /www/wwwrootln -s /data/wwwfile /www/wwwroot

现在,我们来测试下问题是否真的解决了。目前根分区使用率为19%,而/data分区使用率为9%。

/dev/vda1        40G  7.4G   33G  19% //dev/vdb1       500G   43G  458G   9% /data

我们在/www/wwwroot目录下创建一个2G的大文件,然后看看哪个分区的容量变大了。我们想要的答案是/data分区使用率变高,而根分区不变。

dd if=/dev/zero of=/www/wwwroot/bigfile bs=1G count=2# 然后看看各分区使用容量的变化/dev/vda1        40G  7.4G   33G  19% //dev/vdb1       500G   45G  456G   9% /data

可以看到,根分区可用容量还是33G,但/data分区已经从458G变为了456G,所以说我们解决了问题。

以上就是Linux文件链接的介绍及其应用的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/273411.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
华为mate40pro在哪开启防误触模式_华为mate40pro开启防误触模式步骤一览
上一篇 2025年11月4日 13:25:20
如何解决PHP项目中的消息队列问题?使用stomp-php/stomp-php库可以!
下一篇 2025年11月4日 13:25:20

相关推荐

  • VSCode如何优化多项目切换 VSCode工作区快速跳转的实用技巧

    vscode优化多项目切换的核心是使用工作区功能并结合快捷键与插件。1. 创建工作区:通过“文件”→“将工作区另存为…”保存包含多个项目文件夹的.code-workspace文件;2. 配置工作区:在json格式的配置文件中定义folders和settings,如排除node_modules等无关文…

    2026年9月24日
    000
  • Linux中如何安装Git工具_Linux安装Git工具的详细教程

    在Linux系统中安装Git工具是进行版本控制的第一步,尤其对于开发者来说非常关键。不同Linux发行版使用不同的包管理器,因此安装方式略有差异。下面将介绍在主流Linux系统中安装Git的详细步骤。 1. 在Ubuntu/Debian系统中安装Git Ubuntu和Debian系统使用apt作为包…

    2026年9月24日
    100
  • 深入理解 javac 命令中的 ‘当前目录’ 与类路径

    在使用 javac 命令进行 Java 编译时,’当前目录’ 指的是执行该命令时所在的目录,而非源代码文件或 Java 安装路径所在的目录。这对于默认类路径(.)的解析至关重要,影响编译器查找依赖类文件的位置。理解这一概念有助于避免编译错误,并正确配置类路径。 什么是“当前目…

    2026年9月24日
    100
  • 如何监控Linux进程内存泄漏 pmap与valgrind工具使用

    如何监控Linux进程内存泄漏 pmap与valgrind工具使用如何监控Linux进程内存泄漏 pmap与valgrind工具使用如何监控Linux进程内存泄漏 pmap与valgrind工具使用如何监控Linux进程内存泄漏 pmap与valgrind工具使用

    要监控linux进程的内存泄漏,首先使用pmap观察内存增长趋势,再用valgrind定位具体泄漏点。一、使用pmap -x 查看进程内存映射,重点关注anon列和总内存变化,通过定期刷新判断是否存在异常增长;二、利用valgrind –leak-check=full启动程序,分析报告中…

    2026年9月24日 用户投稿
    100
  • 时区错误怎样校准?时间同步完整解决方法

    时区错误怎样校准?时间同步完整解决方法时区错误怎样校准?时间同步完整解决方法时区错误怎样校准?时间同步完整解决方法时区错误怎样校准?时间同步完整解决方法

    时区错误和时间同步问题通常由系统时区设置错误、硬件时钟漂移或ntp服务异常导致。1.确保系统时间通过ntp服务准确同步,linux可使用timedatectl检查ntp状态并启用systemd-timesyncd或chronyd,windows则开启自动时间同步;2.正确设置本地时区,linux使用…

    2026年9月24日 用户投稿
    200
  • Linux目录结构和文件属性管理

    一、fhs概述 文件系统层次化标准(Filesystem Hierarchy Standard,简称FHS)是Linux系统中常用的文件组织方式,类似于Windows中的C盘目录结构。FHS采用树形结构来组织文件,定义了系统中各个区域的用途、最小构成文件和目录,并提供例外处理与矛盾处理的指导。 FH…

    2026年9月24日
    000
  • 如何在Linux中设置文件默认权限?

    umask机制用于设置Linux文件默认权限,通过八进制值从基础权限666(文件)或777(目录)中减去对应权限位,如umask 022时文件为644、目录为755;可临时执行umask命令或在~/.bashrc、/etc/profile等配置文件中永久设置,修改后需重新登录或source生效,过严…

    2026年9月24日
    200
  • 如何查找Linux软件包提供文件 yum provides和apt-file使用

    如何查找Linux软件包提供文件 yum provides和apt-file使用如何查找Linux软件包提供文件 yum provides和apt-file使用如何查找Linux软件包提供文件 yum provides和apt-file使用如何查找Linux软件包提供文件 yum provides和apt-file使用

    在 linux 系统中,若需查找文件归属的软件包,可使用 yum provides(适用于 red hat 系列)或 apt-file(适用于 debian/ubuntu)。1. 在 red hat、centos 或 fedora 中,使用 yum provides 文件名 或 dnf provid…

    2026年9月24日 用户投稿
    000
  • ​​VSCode的进阶玩法!这些快捷键组合让你秒变编程大神​​

    要高效利用vscode进行代码导航,1. 使用ctrl + p / cmd + p快速打开文件;2. 使用ctrl + shift + o / cmd + shift + o定位文件中的符号;3. 使用ctrl + – / cmd + -后退,ctrl + shift + –…

    2026年9月24日
    700
  • Intel OpenCAS缓存加速方案

    open cas 架构概览:数据从hdd盘读取后被复制到open cas的缓存中,后续的读取操作从内存中进行,从而提高读写效率。在write-through模式下,所有数据同步刷新到open cas的ssd和后端的hdd中。在write-back模式下,数据同步写入到open cas的ssd中,然后…

    2026年9月24日
    500
  • 如何通过日志排查权限问题

    排查权限问题需从日志入手,重点分析时间、用户、资源路径、拒绝原因及调用堆栈。首先检查应用日志中“用户无权访问”等提示,结合Web服务器日志中的403/401状态码定位请求异常;再查看操作系统日志如/var/log/secure中SSH或sudo拒绝记录,确认系统级权限问题;同时审查中间件如Sprin…

    2026年9月24日
    100
  • hive安装配置实验

    一、安装前的准备工作 1. 配置并安装hadoop,请参考链接http://blog.csdn.net/wzy0623/article/details/50681554。 2. 下载以下安装包:mysql-5.7.10-linux-glibc2.5-x86_64.tar.gz、apache-hive…

    2026年9月24日
    700
  • VSCode 怎样配置终端默认路径 VSCode 终端默认路径的配置技巧​

    在 vscode 中配置终端默认启动路径需修改 terminal.integrated.cwd 设置项;2. 可通过用户设置(全局生效)或工作区设置(项目专属)进行配置,优先级为工作区设置覆盖用户设置;3. 路径可使用绝对路径或相对路径(推荐相对路径以提升协作性),windows 系统需注意反斜杠转…

    2026年9月24日
    100
  • 《Python完全自学教程》免费在线连载1.5

    《Python完全自学教程》免费在线连载1.5《Python完全自学教程》免费在线连载1.5《Python完全自学教程》免费在线连载1.5《Python完全自学教程》免费在线连载1.5

    说明: 本节内容,是针对非计算机专业的读者提供的补充知识。 1.5 操作系统 本节不是全面介绍操作系统知识,是提醒读者从开发者的角度认识自己的操作系统——根据多年的经验,至少要能熟练使用一些命令完成常见操作。 首先要声明硬件设备,本书所演示的代码都是基于个人计算机( Personal Compute…

    2026年9月24日 用户投稿
    800
  • Linux用户adduser与useradd命令区别

    adduser是交互式脚本,默认创建家目录并设密码,适用于Debian/Ubuntu;2. useradd是底层命令,需手动加参数创建家目录和Shell,通用性强,适合脚本使用。 在Linux系统中,adduser 和 useradd 都可以用来创建新用户,但它们在实现方式、使用习惯和功能上存在明显…

    2026年9月24日
    100
  • 如何解决MySQL安装时配置不生效的处理方法?

    如何解决MySQL安装时配置不生效的处理方法?如何解决MySQL安装时配置不生效的处理方法?如何解决MySQL安装时配置不生效的处理方法?如何解决MySQL安装时配置不生效的处理方法?

    配置mysql时遇到配置不生效的问题,常见原因包括配置文件路径错误、语法问题、命令行参数覆盖及数据目录权限或初始化问题。1. 配置文件路径是否正确?mysql只会读取特定路径的配置文件,建议使用命令mysql –help | grep “default options&#82…

    2026年9月24日 用户投稿
    100
  • Linux如何搜索文件内容 grep命令实战技巧

    Linux如何搜索文件内容 grep命令实战技巧Linux如何搜索文件内容 grep命令实战技巧Linux如何搜索文件内容 grep命令实战技巧Linux如何搜索文件内容 grep命令实战技巧

    grep是linux中搜索文件内容的常用命令,掌握技巧可大幅提升效率。1.基本语法为grep “内容” 文件名,支持通配符和 -i 忽略大小写;2.使用 -r 可递归搜索目录内容,配合 –include、–exclude-dir 和 -l 能精准定位文…

    2026年9月24日 用户投稿
    200
  • VSCode如何实现代码自动修复 VSCode智能重构与错误修正技巧

    VSCode如何实现代码自动修复 VSCode智能重构与错误修正技巧VSCode如何实现代码自动修复 VSCode智能重构与错误修正技巧VSCode如何实现代码自动修复 VSCode智能重构与错误修正技巧VSCode如何实现代码自动修复 VSCode智能重构与错误修正技巧

    vscode通过集成语言服务协议(lsp)、内置quick fixes和refactoring actions,并结合扩展如eslint、prettier等,实现代码自动修复与智能重构;2. 启用editor.formatonsave和editor.codeactionsonsave设置可在保存时自…

    2026年9月24日 用户投稿
    100
  • VSCode如何运行终端命令 VSCode内置终端的使用指南

    在VSCode里运行终端命令,最直接、最核心的方式就是利用它内置的集成终端。这玩意儿简直是开发者工作流的“心脏”,你可以在不离开编辑器界面的情况下,直接敲入并执行各种命令行操作,无论是跑测试、安装依赖,还是启动项目,都方便得要命。它把代码编辑和命令执行无缝衔接起来,大大减少了上下文切换的开销。 解决…

    2026年9月24日
    200
  • 解决AWS S3 PHP SDK中SSL连接失败问题:证书验证与文件句柄限制

    本文旨在帮助开发者解决在使用AWS S3 PHP SDK时遇到的SSL连接失败问题,错误信息包括“fopen(): SSL operation failed with code 5”和“certificate verify failed”。文章将深入分析错误原因,并提供修改php.ini配置,指定证…

    2026年9月24日
    200

发表回复

登录后才能评论
关注微信