Linux:ln命令详解(软连接,硬链接)
ln
ln命令用来为文件创件连接,连接类型分为硬连接和软连接(符号连接)两种,默认的连接类型是硬连接。如果要创建软连接必须使用"-s"选项。
硬链接
建立硬链接时,在另外的目录或本目录中增加目标文件的一个目录项,这样,一个文件就登记在多个目录中。 创建硬链接后,己经存在的文件的1个I节点号(Inode)会被多个目录文件项使用。一个文件的硬链接数可以在目录的长列表格式(ls -l)的第二列中看到,无额外链接的文件的链接数为1。在默认情况下,ln命令创建硬链接。ln命令会增加链接数,rm命令会减少链接数。一个文件除非链接数为0,否则不会从文件系统中被物理地删除。
注意:
- 硬链接,以文件副本的形式存在。但不占用实际空间.
- 不允许给目录创建硬链接.
- 硬链接只有在同一个文件系统中才能创建.
软连接
软连接又称为符号链接,是将一个路径名链接到一个文件。这些文件是一种特别类型的文件。事实上,它只是一个文本文件,其中包含它提供链接的另一个文件的路径名。另一个文件是实际包含所有数据的文件。所有读、写文件内容的命令被用于软链接时,将沿着链接方向前进来访问实际的文件。
与硬链接不同的是,软链接确实是一个新文件,当然它具有不同的I节点号;而硬链接并没有建立新文件。 软连接没有硬链接的限制,可以对目录文件做软链接,也可以在不同文件系统之间做软链接。 用ln -s命令建立软链接时,源文件最好用绝对路径名。这样可以在任何工作目录下进行软链接。而当源文件用相对路径时,如果当前的工作路径与要创建的软链接文件所在路径不同,就不能进行链接。
注意:
- 软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
- 软链接可以 跨文件系统 ,硬链接不可以
- 软链接可以对一个不存在的文件名进行链接
- 软链接可以对目录进行链接
- 删除源文件或目录,只删除了数据,不会删除链接。
- 一旦以同样文件名创建了源文件,链接将继续指向该文件的新数据。
- 在目录长列表中,软链接作为一种特殊的文件类型显示出来,其第一个字母是l。
- 软链接的大小是其链接文件的路径名中的字节数。
- 软链接文件不是一个独立的文件,它的许多属性依赖于源文件,所以给软链接文件设置存取权限是没有意义的
语法
ln(选项)(参数)
选项
-b或--backup:删除,覆盖目标文件之前的备份; -d或-F或——directory:建立目录的硬连接; -f或——force:强行建立文件或目录的连接,不论文件或目录是否存在; -i或——interactive:覆盖既有文件之前先询问用户; -n或--no-dereference:把软连接的目的目录视为一般文件; -s或——symbolic:对源文件建立软连接,而非硬连接; -S<字尾备份字符串>或--suffix=<字尾备份字符串>:用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,预设的备份字符串是符号“~”,用户可通过“-S”参数来改变它; -v或——verbose:显示指令执行过程; -V<备份方式>或--version-control=<备份方式>:用“-b”参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这个字符串不仅可用“-S”参数变更,当使用“-V”参数<备份方式>指定不同备份方式时,
也会产生不同字尾的备份字符串; --help:在线帮助; --version:显示版本信息。
参数
源文件:指定连接的源文件。如果使用-s选项创建软连接,则“源文件”可以是文件或者目录。创建硬连接时,则“源文件”参数只能是文件;
目标文件:指定源文件的目标连接文件。
Linux:ln命令详解(软连接,硬链接)的更多相关文章
- Linux常用命令详解—基于CentOS7
## Linux 目录- /:根目录,一般只存放目录,不存放文件- /bin -> /usr/bin:可执行二进制文件的目录,也是常用命令目录,如常用的命令 ls.cat.mv 等- /boot ...
- ln命令:软链接与硬链接的区别与应用
ln命令:软链接与硬链接的区别与应用 摘要 Linux系统中,链接是一个十分常见且实用的文件处理命令,它分为软链接和硬链接两种类型.软链接类似于Windows中的快捷方式,硬链接又有着与原文件保持同步 ...
- Linux常用命令详解下
Linux常用命令详解 目录 一.Linux常用命令 1.1.查看及切换目录(pwd.cd.ls.du) 1.2.创建目录和文件(mkdir.touch.ln) 1.3.复制.删除.移动目录和文件(c ...
- 【初级】linux rm 命令详解及使用方法实战
rm:删除命令 前言: windows中的删除命令大家都不陌生,linux中的删除命令和windows中有一个共同特点,那就是危险,前两篇linux mkdir 命令详解及使用方法实战[初级]中我们就 ...
- Linux netstat命令详解
Linux netstat命令详解 一 简介 Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多 ...
- Linux find命令详解
转自Linux find命令详解 一.find 命令格式 1.find命令的一般形式为: find pathname -options [-print -exec -ok ...] 2.find命令的 ...
- linux lsof命令详解
linux lsof命令详解 简介 lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访 ...
- linux netstat 命令详解
linux netstat 命令详解 1.功能与说明 netstat 用于显示linux中各种网络相关信息.如网络链接 路由表 接口状态链接 多播成员等等. 2.参数含义介绍 -a (all)显示所 ...
- Linux curl 命令详解
命令概要 该命令设计用于在没有用户交互的情况下工作. curl 是一个工具,用于传输来自服务器或者到服务器的数据.「向服务器传输数据或者获取来自服务器的数据」 可支持的协议有(DICT.FILE.FT ...
随机推荐
- hashmap总结2
1. 关于HashMap的一些说法: a) HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体.HashMap的底层结构是一个数组,数组中的每一项是一条链表. b) Hash ...
- NuGet version
https://stackoverflow.com/questions/15964935/get-nuget-exe-version-from-command-line Typing nuget he ...
- 计算java对象的内存占用
代码引用自:https://blog.csdn.net/antony9118/article/details/54317637 感谢博主分享: import java.util.ArrayList; ...
- 面试代码基础(一)从strstr说起
对于写程序要注意:要能在面试官的提示下把代码写出来(把思想实现的能力)!还要注意边界检查!递归找到出口! 开场来个简单字符串匹配 int strstr(char* target,char* sourc ...
- 关于MAC升级后,vim更新插件报错
找不到路径: 直接在终端 terminal 输入: xcode-select --install
- Struts2框架学习第三章——Struts2基础
本章要点 — Struts 1框架的基本知识 — 使用Struts 1框架开发Web应用 — WebWork框架的基本知识 — 使用WebWork框架开发Web应用 — 在Eclipse中整合To ...
- invocationCount和invocationTimeOut
这篇我们来学习下@Test中另外两个属性invocationCount和invocationTimeOut,前面我介绍了timOut这个属性,知道是超时监控的功能.同样,本篇两个属性和这个差不多,只不 ...
- GDB操作基本命令
GDB操作基本命令 1 打开文件及退出操作 shell下输入 gdb filename : 打开单个文件 gdb filename -q: 打开单个文件,屏蔽掉GDB自带的说明信息 gdb下输入qui ...
- 关于java.lang.Exception:No tests found matching的一系列解决方法
问题描述: java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=yahaa], {ExactMatcher ...
- mysql数据库优化课程---14、常用的sql技巧
mysql数据库优化课程---14.常用的sql技巧 一.总结 一句话总结:其实就是sql中那些函数的使用 1.mysql中函数如何使用? 选择字段 其实就是作用域select的选择字段 3.转大写: ...