这是linux中一个非常重要命令,请大家一定要熟悉。它的功能是为某一个文件或目录在另外一个位置建立一个同步的链接,类似Windows下的超级链接。
这个命令最常用的参数是-s,具体用法是:
sudo ln -s 源文件 目标文件
当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。
例如:sudo ln -s /usr/local/mysql/bin/mysqladmin /sbin/mysqladmin
-s 是代号(symbolic)的意思。
若是可执行文件,一般我们将其链接到/sbin的目录下,这样可以直接输入文件名称执行命令了,而不需要带上目录地址。
如在上例执行下面两个语句是等价的
yajiu@yajiu-desktop:~$ mysqladmin -uroot -p password ubuntu
yajiu@yajiu-desktop:~$ /usr/local/mysql/bin/mysqladmin -uroot -p password ubuntu
这里有两点要注意:
第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;
第二,ln的链接又软链接和硬链接两种,软链接就是ln -s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。
如果你用ls察看一个目录时,发现有的文件右上角有一个箭头,那就是一个用ln命令生成的文件,用ls -l命令去察看,就可以看到显示的link的路径了
语 法:ln [-bdfinsv][-S <字尾备份字符串>][-V <备份方式>][--help][--version][源文件或目录][目标文件或目录] 或 ln [-bdfinsv][-S <字尾备份字符串>][-V <备份方式>][--help][--version][源文件或目录...][目的目录]
补充说明:ln指令用在连接文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,且最后的目的地并非是一个已存在的目录,则会出现错误信息。
参 数:
-b或--backup #删除,覆盖目标文件之前的备份
-d或-F或--directory #建立目录的硬连接
-f或--force #强行建立文件或目录的连接,不论文件或目录是否存在
-i或--interactive #覆盖既有文件之前先询问用户
-n或--no-dereference #将符号连接的目的目录视为一般文件
-s或--symbolic #对源文件建立符号连接,而非硬连接
-S<字尾备份字符串>或--suffix=<字尾备份字符串> #用"-b"参数备份目标文件
示例:
Hard Link
/home/ubuntu/1.log 链接到/home/ubuntu/test/1.log
ln 1.log test
Symbolic Link
/home/ubuntu/1.log 链接到/home/ubuntu/test/1.log
ln -s /home/ubuntu/1.log /home/ubuntu/test/1.log
/home/ubuntu/1 链接到/home/ubuntu/test/
ln -s /home/ubuntu/1/ /home/ubuntu/test/
ps:在做软链接时一定要些全路径否则报:Too many levels of symbolic links
解释如下:
You can have many symbolic links in a filesystem. The limiting factor is how many inodes are available. That is not the problem. You have too many symbolic links for this particular pathname.
Suppose the system tries to open a file called "a". But it finds that "a" is a symbolic link to "b". The system then must open "b". But "b" is a symbolic link to "c". Now the system must open "c". And "c" could be a symbolic link to "d" and so on. The system must reach a real file or directory after 32 tries. If not, the open will fail.
32 is a lot. I'll bet you have a loop. Something like this:
ln -s a b
ln -s b a
vi a
$ ln -s link1 link2
$ ln -s link2 link3
$ ln -s link3 link1
$ cat link1
cat: link1: Too many levels of symbolic links
应该是死循环造成!不是特别清晰!
分享到:
相关推荐
Linux 中的文件分为 Hard Link 和 Symbolic Link 两种。Hard Link 文件又被称为硬链接文件、实体链接文件,Symbolic Link 文件则常被称为符号链接、软链接文件。 ln 命令用来在文件之间建立链接。在介绍 ln 命令前,...
主要介绍了Linux ln 命令的使用,帮助大家更好的理解和使用Linux,感兴趣的朋友可以了解下
Linux 指令篇:档案目录管理--ln 连接的详细介绍Linux 指令篇:档案目录管理--ln 连接的详细介绍
主要介绍了一天一个shell命令 linux文件操作系列-ln命令详解 ,需要的朋友可以参考下
linux命令:ln使用方法.docx
大数据基础-Linux基础详解课程
主要描述linux中常用到的命令:cd,ls,chown ,cp,cup,find,less,ln...等。
简介: Linux强大的文件链接可以让我们轻松做到以下几点: 1、多用户之间的文件共有、数据共享; 2、不同版本的程序环境或数据源之间的切换;...3、ln 命令 4、文件链接的应用 5、Windows下“目录链接”的实现
(默认情况下,ln命令产生硬链接) 软链接文件类似于Windows的快捷方式,但实际上是一个特殊的文件。在软连接中,文件实际上是一个文本文件,其中包含另一文件的位置信息;这就允许软链接指向位于其他分区、甚至是...
要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理 解Linux系统。 不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者 把比较重要和使用频率最多的...
Linux SSH命令大全 rm -rf mydir /* 删除mydir目录 */ cd mydir /* 进入mydir目录 */ cd – /* 回上一级目录 */ cd ~ /* 回根目录 */ mv tools tool /* 把tools目录改名为tool */ ln -s tool bac /* 给tool目录...
内含linux多个命令,都是自己在实用的时候,积累的记录下来的,并附上介绍说明,大家觉得可以就下载看看。
就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。 不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令,按照它们在系统中的作用...
Linux链接命令的实例详解 一 语法 ln -s [源文件] [目标文件] 命令英文含义:link 功能描述:生成链接文件 选项:-s 创建软链接 二 硬链接特征 原文件和硬链接文件删除其中任何一个都没问题。 三 硬链接实战 ...
Linux telnet命令 Linux telnet命令用于远端登入。 执行telnet指令开启终端机阶段作业,并登入远端主机。 语法telnet [-8acdEfFKLrx][-b][-e][-k][-l][-n][-S][-X][主机名称或IP地址] 参数说明: -8 允许使用8位字符...
就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。 不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令,按照它们在系统中的作用...
查看目录下文件mkdir命令:创建目录(文件夹)rmdir命令:删除空目录touch命令:创建文件及修改文件时间戳ln命令:在文件之间建立链接ext 文件系统(Linux 文件系统)ln创建链接的深度剖析cp命令:复制文件和目录rm...