Linux ln 命令是什么?C/C++代码实现

article/2025/10/6 0:56:26

在Linux中,在命令行上工作时,需要在文件之间创建链接,将文件名与文件数据相关联。这可以使用名为 ln 的专用命令来实现。

什么是链接?

在讨论 ln 命令之前,让我们先讨论一下链接命令,什么是链接,以及它与我们所知道的文件的关系。

链接是文件系统中的一个条目,它将文件名连接到磁盘上的实际数据字节。 多个文件名可以“链接”到相同的数据。

Linux ln 命令

ln 命令用于创建文件或目录的链接。 (“ln”是“link”的缩写。)该命令提供给Linux命令行(也称为shell),可以使用终端窗口打开和操作。 它是最重要和最常用的终端命令之一,可用于创建软链接或硬链接。

ln 的基本语法是

ln [选项] 目标链接

或者

ln [选项] 目标 [目录]

默认情况下,ln 创建硬链接,它们只是现有文件的附加名称。硬链接不能指向目录,也不能跨越文件系统和分区边界。

访问 man ln 页面或在终端中键入 man ln 以获取有关 ln 命令的更多信息。

在这里插入图片描述

ln选项:
在这里插入图片描述

什么是软链接和硬链接?

如果你想充分利用 ln 命令,你需要知道软链接和硬链接之间的区别。

软链接也称为符号链接,是指向文件或目录的交叉引用。在 Windows 中,软链接类似于快捷方式。它是指向不可直接访问的文件或位置的指针。如果移动或删除原始文件,则不再有目标,链接将一无所获。

硬链接是原始文件的镜像副本,它有自己的目录条目。硬链接与 Linux 中的特殊内部簿记密切相关。每个硬链接都指向一个 inode,并被分配一个唯一的 inode 编号,该编号与分配给原始文件的编号相同。

如何使用 ln 创建硬链接?

没有任何参数情况下,默认ln命令生成硬链接。

ln file1 link1

如果提供了两个文件名作为参数,则 ln 使用第二个文件名,假设它不是现有文件的名称,作为指向第一个文件的硬链接的名称。因此,例如,以下将创建一个名为 link1 的链接到名为 file1 的文件:

在这里插入图片描述虽然硬链接是操作系统工作方式的重要组成部分,但软链接通常更方便。

如何使用 ln 创建软/符号链接?

ln 的几个选项中最有用的是 -s,它会导致它创建一个符号链接,也称为软链接,而不是硬链接。与硬链接相比,符号链接有几个优点,包括跨越文件系统和分区边界的能力。此外,对原始文件所做的任何更改也会自动对链接进行,反之亦然。

在这里插入图片描述
20220417文件是一个软/符号链接,由它的天蓝色文本颜色确认。

如何使 ln 删除现有的同名目标文件

默认情况下,如果目标目录中已存在同名文件,ln 不会让您创建链接。但是,如果需要,可以使用 -f 命令行选项使 ln 覆盖此行为。

在这里插入图片描述
使用 -f (–force) 选项重写符号链接的目标路径。

Linux 下ln 命令 C/C++代码实现

int main(int argc, char *argv[])
{struct stat sb;int ch, exitval;char *sourcedir;while ((ch = getopt(argc, argv, "finsv")) != -1)switch (ch) {case 'f':fflag = 1;iflag = 0;break;case 'n':hflag = 1;break;case 'i':iflag = 1;fflag = 0;break;case 's':sflag = 1;break;case 'v':               vflag = 1;break;case '?':default:usage();}argv += optind;argc -= optind;if (sflag) {linkf  = symlink;linkch = '-';} else {linkf  = link;linkch = '=';}switch(argc) {case 0:usage();case 1:				/* ln target */exit(linkit(argv[0], ".", 1));case 2:				/* ln target source */exit(linkit(argv[0], argv[1], 0));}/* ln target1 target2 目录 */sourcedir = argv[argc - 1];if (hflag && lstat(sourcedir, &sb) == 0 && S_ISLNK(sb.st_mode)){errno = ENOTDIR;err(EXIT_FAILURE, "%s", sourcedir);}if (stat(sourcedir, &sb)) {err(EXIT_FAILURE, "%s", sourcedir);}if (!S_ISDIR(sb.st_mode)){usage();}for (exitval = 0; *argv != sourcedir; ++argv)exitval |= linkit(*argv, sourcedir, 1);exit(exitval);
}

编译运行:

在这里插入图片描述

总结

ln 是一个用于将文件链接在一起的命令行工具。 ln 命令默认生成硬链接。使用 -s (–symbolic) 选项建立符号连接。

欢迎关注微信公众号【程序猿编码】,需要ln 命令完整源码的添加本人微信号(c17865354792)


http://chatgpt.dhexx.cn/article/veWEYLEM.shtml

相关文章

Linux命令详解(13)- ln命令

ln是英文“link files”的缩写,命令不算复杂,但是非常重要。 语法: ln option Source file or directory Destination file or directory 这里先讲下两个概念。 1.软连接 软链接类似于windows系统中的快捷方式。创建之后&#xff0c…

linux ln 远程,Linux 软连接 (ln命令)

这是linux中一个非常重要命令。它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln -s 源文件 目标文件。 当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个…

linux 中的 ln 命令,Linux ln命令操作指南

ln是Linux系统中一个重要的命令,能够为文件建立链接,保持链接文件的同步性,下面小编就给大家介绍下Linux下如何使用ln命令,通过实例来详细了解。 1. 使用ln命令给档案创建symbolic link。 linux系统下的symbolic link类似于window…

Linux ln命令详解

ln命令来自于英文单词link的缩写,中文译为“链接”,其功能是用于为某个文件在另外一个位置建立同步的链接。Linux系统中的链接文件有两种形式,一种是硬链接(hard link),另一种是软链接(symbolic…

ln命令应用

记录:352 场景:在CentOS 7.9操作系统上,使用ln命令创建软链接(symbolic links)和硬链接(hard links)。解决:Too many levels of symbolic links。 版本: 操作系统:CentOS 7.9 1.命令应用 (1)目录创建软…

linux ln命令

ln 命令的功能是在不同的位置创建一个链接,又分软链接和硬链接,一般软链接使用较多。 硬链接:ln 源文件 链接文件 是在选定的位置生成一个文件的镜像,镜像文件与源文件同样大小 软连接:ln –s 源文件 链接文件 是…

ln命令详解

Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个文件可以有多个名称,而软链接的方式则是产生一个特殊的文件&…

ubuntu18.04虚拟机崩掉导致硬盘错误,提示fsck manually

问题描述: 可能是一次性复制的文件太大了,导致内存吃紧,Windows10直接崩掉,接着就进入了我经常看到的那个蓝屏错误提示界面,有个正在恢复的百分数进度提示。 这个问题我经常碰到,或许是网页开多了吧&…

dos磁盘管理命令

dos磁盘管理命令 前言 磁盘管理命令用于日常的磁盘维护。DOS命令行提供了多种文件管理命令用于设置和管理磁盘列表。由于很多磁盘在没有安装图形界面的时候就需要对其进行操作,所以掌握DOS命令行下的磁盘管 理命令对系统管理员是十分必要的。 磁盘管理命令 以下…

centos 硬盘 修复

xfs_repair -n /dev/sdb centos 硬盘 修复 sudo parted -l sudo parted -l [localhost home]$ sudo parted -l Model: Dell VIRTUAL DISK (scsi) Disk /dev/sda: 1000GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags:Number Start End…

电脑修复损坏文件--修复命令;系统盘磁盘空间不足

目录 sfc/scannow--修复损坏的系统文件命令解析command parse步骤 命令修复磁盘;磁盘空间的释放输入“sfc /purgecache”命令(不含双引号,下同)输入“cleanmgr”命令输入“CHKDSK D:/F”,修复D驱动器号 sfc/scannow–修…

mac 磁盘修复

1、使用磁盘工具 2、终端查看并修复 diskutil listdiskutil verifyVolume disknamediskutil repairDisk diskname

如何扫描和修复 Linux 磁盘错误

在本文中,将学习如何使用 fsck 和 xfs_repair 命令修复 Linux 磁盘错误。 什么是FSCK? fsck(文件系统一致性检查)是用于检查Linux操作系统文件系统一致性的工具。 列出 Linux 磁盘分区和类型: 首先,需要…

计算机磁盘修复工具,chkdsk磁盘修复工具

chkdsk磁盘修复工具是一款非常具有专业性、权威的工具,使用chkdsk磁盘修复工具时你不可以有任何其他操作(停止运行任何程序),只能锁定磁盘(也就是强制卸下该卷),如果出现其他程序在修复时运行,就需要你重启电脑后重新修复了。硬盘坏道修复工具使用简单且安全性高,推荐使用…

ubuntu磁盘修复

输入命令ls的时候遇到错误 ls: reading directory .: Input/output error 用 dmesg 查看,发现io错误 先umount磁盘 cd /mnt umount diske 遇到 umount: /mnt/diske: target is busy. 查看谁在用 ,并kill掉,再次umount lsof /mnt/disk 然…

磁盘检查清理修复命令

Cmd命令在桌面版windowsPC和大多数windows server下都是通用的,所以掌握命令对于使用者非常重要; 经常会遇到检查硬盘、清理磁盘的时候,但是使用360、金山等杀毒软件会有一些安全隐患,尤其是大企业有自己的杀毒软件不允许使用其他的带有插件或广告的杀毒…

windows自带磁盘修复命令chkdsk的使用方法

在电脑使用过程会因突然断电或者是非正常关机等原因导致磁盘受损,这里介绍Windows系统自带chkdsk命令修复硬盘。 2022.10.26补充,专业硬盘维修的朋友告诉我此命令不要随意使用,尤其硬盘已经有坏道,用该方法可能导致更严重的问题。…

cmd命令下修复硬盘/U盘

1、以管理员身份运行cmd(命令提示符),必须是管理员身份,如图所示: 2、 输出命令:chkdsk H: /f 这里的D为磁盘的盘符,也就是你所要修复的盘符号,比如你想修复 C盘,就将H替换成C,后边的/f就是修复命令&#…

阿里巴巴优酷视频增强和超分辨率挑战赛-持续更新

目录 大赛概况 1.数据预处理 2.模型初选 3.训练 ->确定两个模型 4.训练,修改网络,继续优化 大赛概况 大赛地址:https://tianchi.aliyun.com/competition/entrance/231711/introduction?spm5176.12281949.1003.2.37422448y3C5Xj 视频增强和超分…

视频怎么转换html代码实现,音视频格式转换神器与html视频元素加字幕——零基础自学网页制作...

音视频格式转换神器——格式工厂 如果您下载了上一篇《为HTML页面添加音频、视频的方法——零基础自学网页制作》(目录在结尾)中的素材,您会看到有这样一个文件,如图 音视频格式转换神器与html视频元素加字幕——零基础自学网页制作 这就是格式工厂软件的…