ln命令解析_学习笔记

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介:

时间:2017.11.16

作者:李强

参考:man,info,magedu讲义

声明:以下英文纯属个人翻译,英文B级,欢迎纠正,盗版不纠,才能有限,希望不误人子弟为好。

1、使用目的与场景

   

2、官方说明

  make links between files

3、写在前面

  不管是说cp,mv.rm,还有文件的权限管理来说,都离不开对数据的元数据和数据基本的inode的操作,我们要先了解文件存放在磁盘空间的形式是inode表与数据存放块的表,目录也是文件,只不过它的date里存放的是文件名与子目录对应的inode号而已。关于link和symlink,硬链接和软链接的概念可以自行 man 2 link 和man 2 symlink 查看。

4、修改文件及涉及的环境变量

   

5、用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
提要:
    ln  [OPTION]... [-T] TARGET LINK_NAME    (1st form)
    ln  [OPTION]... TARGET            (2nd form)
    ln  [OPTION]... TARGET... DIRECTORY     (3rd form)
    ln  [OPTION]... -t DIRECTORY TARGET...   (4th form)
参数描述:
           
    --backup[=CONTROL]  为每一个存在的目标文件生成一个备份
              
    -b  类似--backup 但是不接收参数
    
    -d, -F, --directory 允许超级用户尝试硬链接目录 
         (注意: 由于系统制约, 可能会失败即使是超级用户)           
    -f, --force       移除存在的目标文件?
                
    -i, --interactive   提示是否移除目标
     
    -L, --logical    对符号链接的源文件生成一个硬链接
              
    -n, --no-dereference  
                  
    -P, --physical    生成一个符号链接的硬链接,相当于备份一下符号链接
           
    -s, --symbolic    生成一个symbolic link(符号链接/软链接),而不是硬链接 
                   
    -S, --suffix=SUFFIX  重写通常的备份后缀名
                  
    -t, --target-directory=DIRECTORY 指定要在其中创建硬链接的目录
                   
    -T, --no-target-directory     将 LINK_NAME 作为普通文件处理
                   
    - v , 显示创建的链接的过程
                    
     注意:
     备份默认后缀是 "^" ,除非指定-S --suffix=SUFFIX或者--backup[=control]
     使用-s创建软链接时-LP是无效的,没有-s时,看LP谁在后谁生效。


6、命令背后的哪些事(原理解析)

此处应该插入图片的更直观,我还没想好用什么工具怎么画,以后再搞。

ln 是针对inode表的一个操作,所以无法跨分区的磁盘的,因为inode是针对分区而言唯一的,

ln 创建一个硬链接的过程就是在这个link_name文件的父目录的inode表中添加一项内容link_name↘TARGET文件的inode号。

ln -s 创建一个符号链接的过程呢就是在symbolic_link_name的父目录下建立一项内容symbolic_link_name↘symbolic_link_name_inode,而symbolic_link_name_inode的内容写的是TARGET pathname,这里的pathname可以相对路径(target file相对symbolic_link_name的相对路径)也可以是绝对路径。

总而言之,link改变的是磁盘空间,symbolic link 改变的是磁盘空间和inode数量。


7、cp,rm,mv和软硬连接的哪些事

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
   cp
        cp  [OPTION]... [-T] SOURCE DEST
        cp  [OPTION]... SOURCE... DIRECTORY
        cp  [OPTION]... -t DIRECTORY SOURCE...
        
   -l   --link          生成一个硬链接而不是目录的副本,
   -s  --sysmbolic-link 生成一个软链接而不是目录的副本,  source 从/开始,写绝对路径
   #    -l -s 后面都不能加目录,跟上目录都是复制的效果,相当于sl的功能是失效的。
   -d   复制符号链接而不是链接的源文件
   -P   后面接的是 source 是符号链接,复制链接符号本身而不是链接文件
   -H   当 cp 指定的参数是一个symbolic-link的时候,复制的是symbolic-link的源文件而不是
   symbolic-link 目录里面的sl不会做操作,只对第一层进行操作  
   -L   和-H有啥区别?-L在源里面的sl文件复制到目标文件里是真实的文件内容,但是名字不变
   还是sl的名字,-L操作的文件里没有符号链接文件了。dest也是一个文件而不是sl文件。
   递归进行操作。
   
    #ps. 此处应该插入测试图片更直观。

 

本文转自 lajifeiwomoshu 51CTO博客,原文链接:http://blog.51cto.com/lajifeiwomoshu/1982281


相关文章
|
18天前
|
图形学 开发者 存储
超越基础教程:深度拆解Unity地形编辑器的每一个隐藏角落,让你的游戏世界既浩瀚无垠又细节满满——从新手到高手的全面技巧升级秘籍
【8月更文挑战第31天】Unity地形编辑器是游戏开发中的重要工具,可快速创建复杂多变的游戏环境。本文通过比较不同地形编辑技术,详细介绍如何利用其功能构建广阔且精细的游戏世界,并提供具体示例代码,展示从基础地形绘制到植被与纹理添加的全过程。通过学习这些技巧,开发者能显著提升游戏画面质量和玩家体验。
52 3
|
1月前
|
数据采集 运维 监控
运维笔记:流编辑器sed命令用法解析
运维笔记:流编辑器sed命令用法解析
41 5
|
1月前
|
Linux 数据安全/隐私保护 Perl
解锁Linux高手秘籍:文件操作+命令解析大揭秘,面试场上让你光芒万丈,技术实力惊艳四座!
【8月更文挑战第5天】Linux作为服务器与嵌入式系统的基石,其文件管理和命令行操作是技术人员必备技能。本文从文件操作和基础命令两大方面,深入浅出地解析Linux核心要义,助你在面试中脱颖而出。首先探索文件系统的树状结构及操作,包括使用`ls -la`浏览文件详情、`touch`创建文件、`rm -r`慎删目录、`cp`与`mv`复制移动文件、以及利用`find`搜索文件。接着掌握命令行技巧,如用`cat`、`more`和`less`查看文件内容;借助`grep`、`sed`与`awk`处理文本;运用`ps`、`top`和`kill`管理进程;并通过`chmod`和`chown`管理文件权限。
62 8
|
1月前
|
运维 Ubuntu Shell
Docker命令宝典:解锁容器化技术的无限可能,从镜像管理到容器操作,全面解析与实战指南!
【8月更文挑战第3天】Docker简化了应用的部署与运行,掌握其基本命令对开发者和运维人员至关重要。通过`docker images`可查看本地镜像;使用`docker pull`拉取如最新版Ubuntu镜像;`docker rmi`用于删除不再需要的镜像。运行容器可通过`docker run`命令,结合`-it`等选项提供交互式环境。`docker ps`显示运行中的容器,加上`-a`则列出所有容器。`docker stop`和`docker start`分别用于停止和重启容器,而`docker rm`则删除容器。
59 5
|
27天前
|
运维 Rust 监控
Linux高效运维必备:fd命令深度解析,文件描述符管理从此得心应手!
【8月更文挑战第23天】本文介绍了一款名为fd的命令行工具,该工具基于Rust语言开发,旨在以更直观的语法和更快的速度替代传统的`find`命令。通过本文,您可以了解到如何安装fd以及一些基本用法示例,比如使用正则表达式匹配文件名、排除特定目录等。此外,文章还展示了如何结合`ps`和`lsof`命令来查找特定文件并显示其文件描述符,从而帮助您更好地管理和监控Linux系统中的文件与进程。
61 0
|
2月前
|
Linux Docker 容器
ip addr命令解析
ip addr命令解析
55 1
|
2月前
|
Linux
《解析 Linux 命令:systemd-delta》
`systemd-delta`: 解析Linux服务配置差异。概览: 显示服务单元文件与默认配置的对比,助于配置问题排查与系统审计。特点: 清晰展示修改点,涵盖启动选项等。示例: `systemd-delta [--plain] <service>`. 注意: 理解默认配置,谨慎修改,定期检查。掌握此命令,深化系统服务配置洞察,优化Linux管理。#Linux #systemd-delta
|
2月前
|
存储 监控 Linux
stdbuf命令在Linux中的深度解析
`stdbuf`是Linux工具,用于控制命令的stdin、stdout和stderr的缓冲模式。它可以设置为无缓冲、行缓冲或块缓冲,以优化数据处理和实时性。例如,`stdbuf -o0 cmd`禁用cmd的输出缓冲,`-oL`则按行缓冲。在需要实时监控或高效处理大量数据时,选择合适的缓冲模式至关重要。注意,过度使用无缓冲可能影响性能,并非所有系统都支持`stdbuf`。
|
2月前
|
监控 安全 Linux
Linux命令ssltap的深入解析与应用实践
`ssltap`是一个假想的Linux命令,用于模拟SSL/TLS流量分析。它捕获、解密(如果有密钥)并分析加密流量,提供实时监控、协议解析和安全审计。特点包括实时性、灵活性、可扩展性和安全性。示例用法包括捕获特定端口流量和实时监控会话状态。在实际操作中应注意私钥安全、性能影响及合规性,建议定期审计和自动化监控。
|
2月前
|
Unix Linux C++
Linux命令size的深入解析
`size`命令在Linux中用于查看目标文件的内存布局,显示代码、数据和BSS段的大小,助力程序优化和资源管理。支持多种输出格式、基数和与其他命令结合使用进行递归分析。常用参数包括设置格式(-A)、基数(-m)、人类可读(-h)和总计(-t)。通过示例展示了如何查看单个或多个文件的大小,并与`find`结合遍历目录。使用时注意文件访问权限和选择合适的输出选项。

推荐镜像

更多