【busybox记录】【shell指令】ln

news2024/12/25 2:07:22

目录

内容来源:

【GUN】【ln】指令介绍

【busybox】【ln】指令介绍

【linux】【ln】指令介绍

使用示例:

创建链接文件 - 链接文件(默认 - 硬链接)

创建链接文件 - 链接文件(软链接)

创建链接文件 - 根据软链接创建一个指向原始文件的硬链接

创建链接文件 - 根据软链接创建一个指向软链接的硬链接

创建链接文件 - 链接成功后打印每个文件的名称

创建链接文件 - 链接文件夹(系统限制会失败)

创建链接文件 - 链接文件夹

创建链接文件 - 删除软连接

创建链接文件 - 不删除链接的情况下,更换链接

常用组合指令:

指令不常用/组合用法还需继续挖掘:


内容来源:

        GUN : Coreutils - GNU core utilities

        busybox v1.36.1 : 【busybox记录】【shell指令】基于的Busybox的版本和下载方式-CSDN博客

【GUN】【ln】指令介绍

ln:建立文件间的链接
ln 在文件之间建立链接。默认情况下,它会创建硬链接;使用-s选项,可以生成符号链接(或软链接)。
简介:
ln [option]... [-T] target linkname
ln [option]... target
ln [option]... target... directory
ln [option]... -t directory target...
如果给出了两个文件名,ln将从第二个文件创建到第一个文件的链接。
如果指定了一个目标,ln将在当前目录中创建指向该文件的链接。
如果指定了--target-directory (-t)选项,如果最后一个文件是一个目录,并且没有指定--no-target-directory (-t)选项,ln将使用目标文件的名称创建指向指定目录中的每个目标文件的链接。
通常情况下,ln不会替换现有文件。使用--force (-f)选项无条件地替换它们,使用--interactive (-i)选项有条件地替换它们,使用--backup (-b)选项重命名它们。除非使用--backup (-b)选项,否则不会有目的地不存在的短暂时刻;这是POSIX的扩展。
硬链接是现有文件的另一个名称。链接和原始是无法区分的。从技术上讲,它们共享同一个inode,而inode包含了一个文件的所有信息。实际上,将该inode称为文件并不错误。大多数系统禁止建立到目录的硬链接;在允许循环的地方,只有超级用户可以这样做(要小心,因为创建循环会给许多其他实用程序带来问题)。硬链接不能跨文件系统边界。(但POSIX没有强制要求这些限制。)
另一方面,符号链接(简称符号链接)是一种特殊的文件类型(并非所有内核都支持该类型:System V release 3(和更老的)系统都没有符号链接),其中的链接文件实际上是指另一个文件。在向符号链接文件传递大多数操作(打开、读取、写入,等等)时,内核自动解引该链接,并对链接的目标进行操作。但有些操作(例如删除)是针对链接文件本身进行的,而不是针对目标。
符号链接的所有者和所属组对通过该链接执行的文件访问不重要,但从设置了限制删除位的目录中删除符号链接时,会有影响。在GNU系统上,符号链接的模式没有意义,不能改变,但在一些BSD系统上,可以改变符号链接的模式,这会影响文件名解析时是否遍历该符号链接。请参阅GNU C库参考手册中的“符号链接”一节。
符号链接可以包含任意字符串;当符号链接中的字符串没有解析为文件时,就会出现悬空符号链接。对于创建悬挂符号链接没有限制。使用绝对符号链接和相对符号链接是有权衡的。绝对符号链接总是指向同一个文件,即使包含该链接的目录已经移动。但如果符号链接在多台机器上可见(例如在网络文件系统上),则所指向的文件可能并不总是相同的。
相对符号链接是根据包含该链接的目录解析的,通常用于引用同一设备上的文件,而不管通过联网的机器访问装载的设备的名称。
当在与当前目录不同的位置创建相对符号链接时,符号链接的解析将与当前目录中相同字符串的解析不同。因此,许多用户喜欢先将目录更改为相对符号链接将要创建的位置,这样制表符补全或其他文件解析将找到与将放置在符号链接中的内容相同的目标。
该程序接受以下选项。参见第2章[常见选项],第2页。

‘-b’
‘--backup[=method]’
	参见第2.1节[备份选项],第2页。备份每个文件,否则将被覆盖或删除。
‘-d’
‘-F’
‘--directory’
	允许具有适当权限的用户尝试建立到目录的硬链接。但是,由于系统限制,这可能会失败,即使对超级用户也是如此。
‘-f’
‘--force’ 
	删除现有的目标文件。
‘-i’
‘--interactive’
	提示是否删除现有的目标文件,如果响应不肯定则失败。
‘-L’
‘--logical’
	如果-s无效,且源文件是符号链接,则创建指向该符号链接引用的文件的硬链接,而不是符号链接本身。
‘-n’
‘--no-dereference’
	如果最后一个操作数是指向目录的符号链接,请不要特别对待它。相反,把它当作一个普通的文件。
	如果目标是一个实际的目录(而不是指向某个目录的符号链接),就不会有歧义。该链接在该目录中创建。但是,当指定的目标是指向目录的符号链接时,有两种方法处理用户的请求。Ln可以像对待普通目录一样对待目标,并在其中创建链接。另一方面,可以将目标视为非目录——即符号链接本身。
	在这种情况下,ln必须在创建新链接之前删除或备份该符号链接。默认情况下,将指向目录的符号链接视为目标,就像对待目录一样。
	这个选项比 --no-target-directory (-T)选项弱,所以如果同时提供了这两个选项,它不会起作用。
‘-P’
‘--physical’
	如果-s无效,且源文件是符号链接,则创建指向符号链接本身的硬链接。在内核不支持的平台上,该选项创建一个内容相同的符号链接。由于符号链接内容不能编辑,因此通过任何链接执行的任何文件名解析都将与创建硬链接时相同。
‘-r’
‘--relative’
	创建相对于链接位置的符号链接。这个选项只对--symbolic选项有效。
	例子:
		ln -srv /a/file /tmp
		'/tmp/file' -> '../a/file'
	相对符号链接根据其被规范化的包含目录和被规范化的目标生成。也就是说,这些文件名中的所有符号链接都会被解析。参见18.5节[realpath调用],第179页,它对相对文件名生成提供了更大的控制,如下面的例子所示:
		ln --relative() {
			test "$1" = --no-symlinks && { nosym=$1; shift; }
			target="$1";
			test -d "$2" && link="$2/." || link="$2"
			rtarget="$(realpath $nosym -m "$target" \
			--relative-to "$(dirname "$link")")"
			ln -s -v "$rtarget" "$link"
		}
‘-s’
‘--symbolic’
	制作符号链接而不是硬链接。在不支持符号链接的系统上,此选项仅产生错误消息。
‘-S suffix’
‘--suffix=suffix’
	为每个用-b生成的备份文件添加后缀。参见第2.1节[备份选项],第2页。
‘-t directory’
‘--target-directory=directory’
	指定目标目录。参见第2.6节[目标目录],第7页。
‘-T’
‘--no-target-directory’
	当最后一个操作数是目录或指向目录的符号链接时,不要特别对待它。参见第2.6节[目标目录],第7页。
‘-v’
‘--verbose’
	链接成功后打印每个文件的名称。
	如果-L和-P都给定,则最后一个优先。如果同时给出了-s, -L和-P将被静默地忽略。如果这两个选项都没有给出,那么如果系统链接支持指向符号链接的硬链接(如GNU系统),则该实现默认为-P;如果link在符号链接之后(如BSD上),则默认为-L。
退出状态为零表示成功,非零值表示失败。

例子:
不好的例子:
	# 创建链接../a指向该目录中的a。
	# 不是很有用,因为它指向自己。
	ln -s a ..
更好的例子:
	#在创建符号链接之前更改target,以避免混淆。
	cd ..
	ln -s adir/a .
不好的例子:
	#硬编码的文件名难以移动。
	ln -s $(pwd)/a /some/dir/
更好的例子:
	#相对文件名在目录移动后仍然有效
	#跨网络文件系统工作。
	ln -s afile anotherfile
	ln -s ../adir/afile yetanotherfile

【busybox】【ln】指令介绍

【linux】【ln】指令介绍

[root@localhost bin]# ln --help
Usage: ln [OPTION]... [-T] TARGET LINK_NAME
  or:  ln [OPTION]... TARGET
  or:  ln [OPTION]... TARGET... DIRECTORY
  or:  ln [OPTION]... -t DIRECTORY TARGET...
In the 1st form, create a link to TARGET with the name LINK_NAME.
In the 2nd form, create a link to TARGET in the current directory.
In the 3rd and 4th forms, create links to each TARGET in DIRECTORY.
Create hard links by default, symbolic links with --symbolic.
By default, each destination (name of new link) should not already exist.
When creating hard links, each TARGET must exist.  Symbolic links
can hold arbitrary text; if later resolved, a relative link is
interpreted in relation to its parent directory.

必选参数对长短选项同时适用。
      --backup[=CONTROL]	为每个已存在的目标文件创建备份文件
  -b				类似--backup,但不接受任何参数
  -d, -F, --directory		创建指向目录的硬链接(只适用于超级用户)
  -f, --force			强行删除任何已存在的目标文件
  -i, --interactive           prompt whether to remove destinations
  -L, --logical               dereference TARGETs that are symbolic links
  -n, --no-dereference        treat LINK_NAME as a normal file if
                                it is a symbolic link to a directory
  -P, --physical              make hard links directly to symbolic links
  -r, --relative              create symbolic links relative to link location
  -s, --symbolic              make symbolic links instead of hard links
  -S, --suffix=SUFFIX         override the usual backup suffix
  -t, --target-directory=DIRECTORY  specify the DIRECTORY in which to create
                                the links
  -T, --no-target-directory   treat LINK_NAME as a normal file always
  -v, --verbose               print name of each linked file
      --help		显示此帮助信息并退出
      --version		显示版本信息并退出

The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.
The version control method may be selected via the --backup option or through
the VERSION_CONTROL environment variable.  Here are the values:

  none, off       不进行备份(即使使用了--backup 选项)
  numbered, t     备份文件加上数字进行排序
  existing, nil   若有数字的备份文件已经存在则使用数字,否则使用普通方式备份
  simple, never   永远使用普通方式备份

Using -s ignores -L and -P.  Otherwise, the last option specified controls
behavior when a TARGET is a symbolic link, defaulting to -P.

GNU coreutils 在线帮助:<https://www.gnu.org/software/coreutils/>
请向 <http://translationproject.org/team/zh_CN.html> 报告 ln 的翻译错误
完整文档请见:<https://www.gnu.org/software/coreutils/ln>
或者在本地使用:info '(coreutils) ln invocation'
[root@localhost bin]# 

使用示例:

创建链接文件 - 链接文件(默认 - 硬链接)

默认是创建硬链接

指令: ln test test_link

创建链接文件 - 链接文件(软链接)

-s 选项可以创建软连接

指令: ln -s test test_link

创建链接文件 - 根据软链接创建一个指向原始文件的硬链接

-L  如果-s无效,且源文件是符号链接,则创建指向该符号链接引用的文件的硬链接,而不是符号链接本身。

指令: ln -L test_link test_link_1

创建链接文件 - 根据软链接创建一个指向软链接的硬链接

-P 如果-s无效,且源文件是符号链接,则创建指向符号链接本身的硬链接。在内核不支持的平台上,该选项创建一个内容相同的符号链接。由于符号链接内容不能编辑,因此通过任何链接执行的任何文件名解析都将与创建硬链接时相同。

指令: ln -P test_link test_link_2

创建链接文件 - 链接成功后打印每个文件的名称

-v 选项

指令:ln -v test_link test_link_3

创建链接文件 - 链接文件夹(系统限制会失败)

允许具有适当权限的用户尝试建立到目录的硬链接。但是,由于系统限制,这可能会失败,即使对超级用户也是如此。

-d -F --directory 选项

指令: ln -d bin/ test_bin

指令: ln -F bin/ test_bin

创建链接文件 - 链接文件夹

-r 选项,创建相对于链接位置的符号链接。这个选项只对--symbolic选项有效。

-sr 选项

指令: ln -srv bin/ bin_1

创建链接文件 - 删除软连接

删除文件夹时,不要在后面加 /。

指令:rm -rf bin_1

创建链接文件 - 不删除链接的情况下,更换链接

-f 选项 -n选项

指令:ln -s test1 test3

更换软链接

指令:ln -snf test2 test3

指令:ln  test1 test3

更换硬链接

指令:ln  test2 test3

常用组合指令:

NA

指令不常用/组合用法还需继续挖掘:

NA

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1711242.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

李廉洋:5.29黄金震荡,原油持续走高,今日美盘行情走势分析及策略。

黄金消息面分析&#xff1a;当前美国存在一个令人担忧且未被充分关注的问题&#xff1a;房地产行业低迷、高利率和抵押贷款利率、租金高涨以及美联储的紧缩政策构成了一个恶性循环。由于高房价和高抵押贷款利率&#xff0c;美国住房经济活动远低于两年前的水平。为了让该行业好…

Android ANR Trace日志阅读分析技巧

什么是Trace日志 Trace日志是指ANR目录下的一份txt文件 adb pull /data/anr/traces.txt Trace日志有什么用 分析应用ANR无响应的问题&#xff0c; Trace怎么用 Cmd line: com.xx ABI: arm Build type: optimized Zygote loaded classes3682 post zygote classes3750 Intern…

SpringSecurity6从入门到实战之引言和基本概念

SpringSecurity6从入门到实战之引言和基本概念 前言 在当今数字化时代&#xff0c;随着网络应用的日益普及&#xff0c;保护用户数据和系统安全变得至关重要。作为Java开发社区的中坚力量&#xff0c;Spring框架提供了一整套解决方案来构建企业级应用程序。然而&#xff0c;随…

Android 13 VSYNC重学习

Android 13 VSYNC重学习 引言 学无止境&#xff0c;一个字干就完事&#xff01; 源码参考基于Android 13 aosp&#xff01; 一. Android VSync模块开胃菜 在开始正式的分析之前&#xff0c;我们先简单对Android的Vsync模块简单介绍下,如下图所示&#xff0c;其中: HW_VSync是…

Dolphinscheduler不重启加载Oracle驱动

转载自刘茫茫看山 问题背景 某天我们的租户反馈数据库连接缺少必要的驱动&#xff0c;我们通过日志查看确实是缺少部分数据库的驱动&#xff0c;因为DolphinScheduler默认只带了Oracle和MySQL的驱动&#xff0c;并且需要将pom文件中的test模式去掉才可以在打包的时候引入。我…

C# 中 async 与 await 关键字详解

async 和 await 关键字的作用是使方法能够异步执行并等待异步操作的完成。&#xff08;最重要的一点是记住 “异步执行”与“等待异步操作完成”&#xff0c;不是等待主线程操作完成&#xff09; async 修饰符可将 方法、lambda 表达式或匿名方法指定为异步。 async 关键字用于…

一张图一个表——CSS选择器总结

CSS选择器总结&#xff1a; (这些表是一张图片^_^) 看底部 完整思维导图图片和表格的下载地址&#xff1a;https://download.csdn.net/download/denlnyyr/10597820

LeetCode 377.组合总和Ⅳ

这题是我蠢了&#xff0c;它说是组合数我就信了&#xff0c;言尽于此 class Solution { public:int combinationSum4(vector<int>& nums, int target) {vector<int> dp(2000,0);dp[0]1;for(int i0;i<target;i){for(int j0;j<nums.size();j){if(i>nums…

22.Volatile原理

文章目录 Volatile原理1.Volatile语义中的内存屏障1.1.volatile写操作的内存屏障1.1.1.StoreStore 屏障1.1.2.StoreLoad 屏障 1.2.volatile读操作的内存屏障1.2.1.LoadStore屏障1.2.2.LoadLoad屏障 2.volatile不具备原子性2.1.原理 Volatile原理 1.Volatile语义中的内存屏障 在…

定位器与PWM的LED控制

文章目录 一、STM32定时器二、脉宽调制pwm三、定时器控制led&#xff08;1&#xff09;实验内容&#xff08;2&#xff09;创建工程&#xff08;3&#xff09;Keli程序&#xff08;4&#xff09;观察波形图&#xff08;5&#xff09;实物连接图&#xff08;6&#xff09;实践效…

Python机器学习 Tensorflow + keras 实现CNN

一、实验目的 1. 了解SkLearn Tensorlow使用方法 2. 了解SkLearn keras使用方法 二、实验工具&#xff1a; 1. SkLearn 三、实验内容 &#xff08;贴上源码及结果&#xff09; 使用Tensorflow对半环形数据集分 #encoding:utf-8import numpy as npfrom sklearn.datasets i…

AI图书推荐:用ChatGPT和Python搭建AI应用来变现

《用ChatGPT和Python搭建AI应用来变现》&#xff08;Building AI Applications with ChatGPT API&#xff09;将ChatGPT API与Python结合使用&#xff0c;可以开启构建非凡AI应用的大门。通过利用这些API&#xff0c;你可以专注于应用逻辑和用户体验&#xff0c;而ChatGPT强大的…

clocking wizard IP核通过AXI4-Lite接口实现动态重新配置应用实例

在最近的FPGA应用中&#xff0c;应用到了基于Zynq 7000的Uart串口设计&#xff0c;为了让串口的时钟更精确&#xff0c;采用了外部时钟模式&#xff0c;如下图所示。外部时钟连接到了Clocking Wizard IP核的输出端。 在串口通信时&#xff0c;发现串口有错码出现。例如&#xf…

ADS基础教程16 - 存档和导入(workspace、cell、view)

设计加密保护IP 一、引言二、workspace归档二、Cell归档三、View归档四、导入归档文件 一、引言 介绍如何ADS中如何对workspace、cell和view进行存档&#xff0c;以及如何将存档文件导入到工程中。 二、workspace归档 (1)在菜单栏中&#xff0c;选择File–>Archive Works…

Follow Your Pose: Pose-Guided Text-to-Video Generation using Pose-Free Videos

清华深&港科&深先进&Tencent AAAI24https://github.com/mayuelala/FollowYourPose 问题引入 本文的任务是根据文本来生成高质量的角色视频&#xff0c;并且可以通过pose来控制任务的姿势&#xff1b;当前缺少video-pose caption数据集&#xff0c;所以提出一个两…

Chisel入门——在windows下vscode搭建|部署Scala2.13.3开发环境|用Chisel点亮FPGA小灯

文章目录 前言一、vscode搭建scala开发环境1.1 安装Scala官方插件Scala Syntax1.2 创建hello_world.scala文件1.3 确认java的版本(博主使用的是1.8)1.4 下载Scala Windows版本的二进制文件1.5 配置环境变量1.6 交互模式测试一下1.7 vscode运行scala 二、windows安装sbt2.1 下载…

Matlab|主动配电网故障恢复与孤岛划分模型【多时段】

目录 1 主要内容 1.1 模型目标 1.2 约束条件 2 部分代码 3 程序结果 4 下载链接 1 主要内容 程序主要方法复现《主动配电网故障恢复的重构与孤岛划分统一模型》&#xff0c;完全复现检修策略约束和潮流约束&#xff0c;辐射状与连通性约束考虑孤岛划分情形&#xff0c;采…

翻译《Use FILE_SHARE_DELETE in your shell extension》

在写 《翻译《The Old New Thing》- What did MakeProcInstance do?》 文章时&#xff0c;了解到了 Michael Geary &#xff0c;他也有不少优秀的技术文章&#xff0c;现翻译一篇关于文件操作的细节的文章 原文 Use FILE_SHARE_DELETE in your shell extension | mg.tohttps:…

【Unity之FGUI】白仙章Fairy GUI控件详解二

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;就业…

硬盘监控,保障硬盘性能

硬盘驱动器是个人计算机和服务器中用于存储数字数据的硬件部件&#xff0c;硬盘突然故障可能导致永久数据丢失&#xff0c;大多数硬盘驱动器使用自我监控、分析和报告技术&#xff08;SMART&#xff09;来跟踪各种性能指标并分析其自身的运行状况。然而&#xff0c;并不是所有的…