linux命令详解——ln
ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln -s 源文件
目标文件。
当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。例如:ln
-s /bin/less /usr/local/bin/less
-s 是代号(symbolic)的意思。
这里有两点要注意:第一,ln命令会保持每一处链接文件的同步性(无论软连接还是硬链接),也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;第二,ln的链接又
软链接和硬链接两种,软链接就是ln –s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。
如果你用ls察看一个目录时,发现有的文件后面有一个@的符号,那就是一个用ln命令生成的文件,用ls –l命令去察看,就可以看到显示的link的路径了。
【指令详细说明】
指令名称 : ln
使用权限 : 所有使用者
使用方式 : ln [options] source dist,其中 option 的格式为 :
[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]
[--help] [--version] [--]
说明 : Linux/Unix 档案系统中,有所谓的连结(link),我们可以将其视为档案的别名,而连结又可分为两种 : 硬连结(hard link)与软连结(symbolic link),硬连结的意思是一个档案可以有多个名称,而软连结的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬连结是存在同一个档
案系统中,而软连结却可以跨越不同的档案系统。
ln source dist 是产生一个连结(dist)到 source,至于使用硬连结或软链结则由参数决定。
不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。
-f : 链结时先将与 dist 同档名的档案删除
-d : 允许系统管理者硬链结自己的目录
-i : 在删除与 dist 同档名的档案时先进行询问
-n : 在进行软连结时,将 dist 视为一般的档案
-s : 进行软链结(symbolic link)
-v : 在连结之前显示其档名
-b : 将在链结时会被覆写或删除的档案进行备份
-S SUFFIX : 将备份的档案都加上 SUFFIX 的字尾
-V METHOD : 指定备份的方式
--help : 显示辅助说明
--version : 显示版本
范例 :
1、将档案 yy 产生一个 symbolic link : zz
ln -s yy zz
2、将档案 yy 产生一个 hard link : xx
ln yy xx
3、将目录/aaa/下的所有文件软连接到目录/bbb下:
ln -s /aaa/* /bbb/
注意:软连接建立时,要指定 source和dist的完整路径,否则创建连接即使成功也是个无效的连接。
1.对某个文件创建一个连接
[root@A ~]# ln -s /home/kk/ss.sh ~ #如果不写目标地址,即在当前目录建接立链接
[root@A ~]# ls
CentOS-Base.repo.oldboy anaconda-ks.cfg install.log install.log.syslog ss.sh此命令表示在家目录下创建与源文件同名的链接到/home/kk/ss.sh 符号连接
[root@A ~]# ln -s /home/kk/ss.sh ~/dd
[root@A ~]# ls
CentOS-Base.repo.oldboy anaconda-ks.cfg dd install.log install.log.syslog
此命令表示在家目录下建立链接到/home/kk/ss.sh 并且名字为dd的符号连接(前提是在家目录下没有abc这个目录)
2.对某个目录创建符号连接
[root@A home]# ln -s /home/kk /home/abc
[root@A home]# ls
abc apache kk oldboy
[root@A home]# cd abc
[root@A abc]# ls
ss.sh
此命令表示在/home目录下创建一个链接到/home/kk目录的名字为abc的符号连接。
[root@A home]# rm abc
rm: remove symbolic link `abc'? y #删除所作目录链接时的提示
[root@A ~]# ln -s /tmp ~/
[root@A ~]# ls
CentOS-Base.repo.oldboy anaconda-ks.cfg install.log install.log.syslog tmp
此命令表示在家目录下创建一个与源文件夹同名的符号连接
3.对某个文件创建一个硬连接
[root@A ~]# ln /home/kk/ss.sh ~/
[root@A ~]# ls -l
total 60
-rw-r--r-- 1 root root 2239 Oct 24 09:30 CentOS-Base.repo.oldboy
-rw------- 1 root root 1074 Nov 10 12:28 anaconda-ks.cfg
-rw-r--r-- 1 root root 26403 Nov 10 12:28 install.log
-rw-r--r-- 1 root root 4378 Nov 10 12:28 install.log.syslog
-rw-r--r-- 2 root root 82 Dec 26 14:31 ss.sh
此命令表示在家目录下创建与源文件同名的链接到/home/kk/ss.sh硬链接,而且目标文件的颜色和原来一样,
ls –l也无法显示链接的路径
[root@A ~]# ln /home/kk/ss.sh ~/abc
[root@A ~]# ls
CentOS-Base.repo.oldboy abc anaconda-ks.cfg install.log install.log.syslog
此命令表示在家目录下建立链接到/tmp/abc.txt 并且名字为abc的硬链接(前提是在家目录下没有abc这个目录)
abc目录己存在的情况
[root@A ~]# mkdir abc
[root@A ~]# ls
CentOS-Base.repo.oldboy abc anaconda-ks.cfg install.log install.log.syslog
[root@A ~]# ln /home/kk/ss.sh ~/abc #做硬链接
[root@A ~]# ls
CentOS-Base.repo.oldboy abc anaconda-ks.cfg install.log install.log.syslog
[root@A ~]# cd abc
[root@A abc]# ls
ss.sh
源文件是目录不可以做硬链接
[root@A ~]# ln /home/kk ~/abc
ln: `/home/kk': hard link not allowed for directory
4.参数 -v的用法
硬链接:
[root@A home]# ln -v /home/kk/ss.sh /home #加上参数v后,
create hard link `/home/ss.sh' to `/home/kk/ss.sh' #会用文字显示源文件到目标的链接
[root@A home]# ls
apache kk oldboy ss.sh
[root@A home]# ln -vs /home/kk/ss.sh /home #创建名子相同的软链接
create symbolic link `/home/ss.sh' to `/home/kk/ss.sh' #会用文字显示源文件到目标的链接
ln: creating symbolic link `/home/ss.sh' to `/home/kk/ss.sh': File exists #同时也出现了己存在提示
软链接
[root@A home]# ln -vs /home/kk/ss.sh /home/dd #加上参数v后的软链接
create symbolic link `/home/dd' to `/home/kk/ss.sh' #会用文字显示源文件到目标的链接
[root@A home]# ls
apache dd kk oldboy ss.sh
青绿色的软链接,跟原来颜色一样的是硬链接
5.-f的用法
[root@A home]# ls
apache dd kk oldboy ss.sh #dd 是己存在软链接;ss.sh是己存在硬链接
[root@A home]# ln -s -f /home/kk/ss.sh /home #创建/home/kk/ss.sh的软链接
[root@A home]# ls
apache dd kk oldboy ss.sh #上面加了f参数,ss.sh现在是软链接
[root@A home]# ln /home/kk/ss.sh /home/dd #创建/home/kk/ss.sh 的硬链接,名子同样是dd
ln: creating hard link `/home/dd' to `/home/kk/ss.sh': File exists #提示出现了,己存在
[root@A home]# ln -f /home/kk/ss.sh /home/dd #加上f参数后,提示没有了
[root@A home]# ls
apache dd kk oldboy ss.sh #dd变成链接了,
-f的主要过程:先将同名的软链接dd删除,然后再创建硬链接dd
6.-d和-b的用法
[root@A home]# ln /home/kk /home/dd #创建硬链接不允许
ln: `/home/kk': hard link not allowed for directory #不允许对目录创建硬链接
[root@A home]# ln -F /home/kk /home/dd #加上-d参数
ln: creating hard link `/home/dd' to `/home/kk': Operation not permitted #为什么还是不行呀?
7.-i的用法
[root@A home]# ln -s /home/kk/ss.sh #创建软链接
[root@A home]# ls #查看
apache kk oldboy ss.sh
[root@A home]# ln -fi /home/kk/ss.sh #加上-f参数删除同名的,加上-i参数-在删除之前给出提示
ln: replace `./ss.sh'? #提示
[root@A home]# ln -fi /home/kk/ss.sh
ln: replace `./ss.sh'? n #我选择了n
[root@A home]# ls #查看
apache kk oldboy ss.sh #还存在
[root@A home]# ln -fb /home/kk/ss.sh #加上参数b
[root@A home]# ls #查看
apache kk oldboy ss.sh ss.sh~ #之前存在的软链接被更名备份了,然后创建同名的硬链接
linux命令详解——ln的更多相关文章
- Linux命令详解----ln
ln命令 ln命令为文件或文件夹创建连接,连接类型有硬链接和符号连接两种,符号连接需要使用"-s"选项 ln语法 ln [选项] 参数 使用 ln --help查看可用选项 [ro ...
- Linux命令详解之—tail命令
tail命令也是一个非常常用的文件查看类的命令,今天就为大家介绍下Linux tail命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux tail命令主要用来从指定点开始将文 ...
- Linux命令详解之—less命令
Linux下还有一个与more命令非常类似的命令--less命令,相比于more命令,less命令更加灵活强大一些,今天就给大家介绍下Linux下的less命令. 更多Linux命令详情请看:Linu ...
- Linux命令详解之—more命令
Linux more命令同cat命令一样,多用来查看文件内容,本文就为大家介绍下Linux more命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux的more命令类似 ca ...
- 【转】linux命令详解:md5sum命令
[转]linux命令详解:md5sum命令 转自:http://blog.itpub.net/29320885/viewspace-1710218/ 前言 在网络传输.设备之间转存.复制大文件等时,可 ...
- Linux命令详解之—cat命令
cat命令的功能是连接文件或标准输入并打印,今天就为大家介绍下Linux中的cat命令. 更多Linux命令详情请看:Linux命令速查手册 Linux 的cat命令通常用来显示文件内容,也可以用来将 ...
- Linux命令详解之—pwd命令
Linux的pwd命令也是一个非常常用的命令,本文为大家介绍下Linux中pwd命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux pwd命令用于显示工作目录. 执行pwd指 ...
- Linux命令详解之–cd命令
cd命令是linux实际使用当中另一个非常重要的命令,本文就为大家介绍下Linux中cd命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux cd命令用于切换当前工作目录至 d ...
- Linux命令详解之–ls命令
今天开始为大家介绍下Linux中常用的命令,首先给大家介绍下Linux中使用频率最高的命令--ls命令. 更多Linux命令详情请看:Linux命令速查手册 linux ls命令用于显示指定工作目录下 ...
随机推荐
- 从txt导入数据到mysql
当要往mysql的table中录入数据量大的时候,直接从txt录入已有数据是一个愉快的选择. 在录入数据前要做一些格式上的准备 1. txt编码要是utf-8,无BOM 2. 每行以\t\n结尾,每列 ...
- Ubuntu 16.04下安装sublime Text的插件
Sublime Text是什么: 它是一款具有代码高亮.语法提示.自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插件扩展机制,用她来写代码,绝对是一种享受.相比于难于上手的Vim,浮肿沉重 ...
- 远程连接elasticsearch遇到的问题
本文转自:https://blog.csdn.net/xuchuangqi/article/details/78989940 1.首先要远程连接就要把配置文件的network.host: 改为 net ...
- ISO/ISO 参考模型 和 TCP/IP模型
OSI 参考模型 国际化标准组织(International Organization for Standardization,ISO)于1978年提出了一个网络体系结构,成为开放系统互联参考模型(O ...
- opencv、numpy中矩阵转置,矩阵内的固定位置相应的坐标变换
opencv.numpy中矩阵转置,矩阵内的固定位置相应的坐标变换
- 【神经网络与深度学习】【CUDA开发】caffe-windows win32下的编译尝试
[神经网络与深度学习][CUDA开发]caffe-windows win32下的编译尝试 标签:[神经网络与深度学习] [CUDA开发] 主要是在开发Qt的应用程序时,需要的是有一个使用的库文件也只是 ...
- Keytool生成证书
一.生成证书keytool -genkey -alias 别名 -keyalg RSA -keysize 1024(密钥位数) -keypass 密码 -validity 365(默认90天) -ke ...
- form 源码刨析
def clean_name(self) value = self.cleaned_data.get('name') if "金-瓶-梅" not in value: raise ...
- XSS绕过WAF的姿势
初始测试 1.使用无害的payload,类似<b>,<i>,<u> 观察响应,判断应用程序是否被HTML编码,是否标签被过滤,是否过滤<>等等: 2.如 ...
- zabbix4安装部署
参考: https://www.cnblogs.com/barneywill/p/10380622.html https://www.cnblogs.com/yinzhengjie/p/1037256 ...