Linux命令——ln命令

ln命令

  该命令在文件之间创建链接。这种操作实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称。对于这个新的文件名,我们可以为之指定不同的访问权限,以控制对信息的共享和安全性的问题。 如果链接指向目录,用户就可以利用该链接直接进入被链接的目录而不用打一大堆的路径名。而且,即使我们删除这个链接,也不会破坏原来的目录。

  语法:ln [选项] 目标 [链接名]

  ln [选项] 目标 目录

  链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中,并且不能建立指向目录的硬链接。而对符号链接,则不存在这个问题。默认情况下,ln产生硬链接。

  在硬链接的情况下,参数中的“目标”被链接至[链接名]。如果[链接名]是一个目录名,系统将在该目录之下建立一个或多个与“目标”同名的链接文件,链接文件和被链接文件的内容完全相同。如果[链接名]为一个文件,用户将被告知该文件已存在且不进行链接。如果指定了多个“目标”参数,那么最后一个参数必须为目录。

  如果给ln命令加上- s选项,则建立符号链接。如果[链接名]已经存在但不是目录,将不做链接。[链接名]可以是任何一个文件名(可包含路径),也可以是一个目录,并且允许它与“目标”不在同一个文件系统中。如果[链接名]是一个已经存在的目录,系统将在该目录下建立一个或多个与“目标”同名的文件,此新建的文件实际上是指向原“目标”的符号链接文件。

  例:$ ln - s lunch /home/xu

 

 

Linux中的符号链接应用(转)

存在两种不同类型的链接,软链接和硬链接,这里我们只讨论软链接。软链接实际上就是一个指向文件的指针。你将会发现这种软链接使用起来非常方便。

一. 使用软链接来保存文件的多个映像

下面我们就解释一下符号链接是怎么回事。比方说在/usr/local/admin/sales目录下有一个含有销售信息的文件,销售部门的每一个人都想看这份文件。你可以在每一位用户的$HOME目录下建立一个指向该文件的链接,而不是在每个目录下拷贝一份。这样当需要更改这一文件时,只需改变一个源文件即可。每个销售$HOME目录中的链接可以起任何名字,不必和源文件一致。如果有很多子目录,而进入这些目录很费时间,在这种情况下链接也非常有用。可以针对$HOME目录下的一个很深的子目录创建一个链接。还有,比如在安装一个应用程序时,它的日志被保存到/usr/opt /app/log目录下,如果想把它保存在另外一个你认为更方便目录下,可以建立一个指向该目录的链接。
该命令的一般形式为:
ln [-s] source_path target_path
其中的路径可以是目录也可以是文件。让我们来看几个例子。

二. 符号链接举例


假如系统中有4 0个销售和管理用户,销售用户使用一个销售应用程序,而管理用户使用一个管理应用程序。我作为系统管理员该怎么做呢?首先删除它们各自$HOME目录下的所有.profile文件。然后在/usr/local/menus/目录下创建两profile文件,一个是sales.profile,一个是 admin.profile,它们分别为销售和管理人员提供了所需的环境,并引导他们进入相应的应用程序。现在我在所有销售人员的$HOME目录下分别创建一个指向sales.profile的链接,在所有管理人员的$HOME目录下分别创建一个指admin.profile文件的链接。注意,不必在上面命令格式中的target_path端创建相应文件,如果不存在这样一个文件, ln命令会自动创建该文件。
下面就是我对销售人员matty所做的操作。
$ cd /home/sales/matty
$ rm .profile
$ ln -s /usr/local/menus/sales.profile .profile
$ ls -al .profile
$ lrwx rwx rwx 1 sales admin 5567 Oct 3 05:40./profile->/usr/local/menus/sales.profile
(你所看到的可能会与此稍有差别)。
这就是我所要做的全部工作;对于管理人员也是如此。而且如果需要作任何修改的话,只要改变销售和管理人员的profile文件即可,而不必对40个用户逐一进行修改。
下面是另外一个例子。我所管理的系统中有一个网络监视器,它将日志写在/usr/opt/monitor/regstar目录下,但其他所有的日志都保存在/var/adm/logs目录下,这样只需在该目录下建立一个指向原有文件的链接就可以在一个地方看所有的日志了,而不必花费很多时间分别进入各个相应的目录。
下面就是所用的链接命令:
$ ln -s /usr/opt/monitor/regstar/reg.log /var/adm/logs/monitor.log
如果链接太多的话,可以删掉一些,不过切记不要删除源文件。
不管是否在同一个文件系统中,都可以创建链接。在创建链接的时候,不要忘记在原有目录设置执行权限。链接一旦创建,链接目录将具有权限777或rwx rwx rwx,但是实际的原有文件的权限并未改变。
在新安装的系统上,通常要进行这样的操作,在/var目录中创建一个指向/tmp目录的链接,因为有些应用程序认为存在/var/tmp目录(然而它实际上并不存在),有些应用程序在该目录中保存一些临时文件。为了使所有的临时文件都放在一个地方,可以使用ln命令在/var目录下建立一个指向/tmp目录的链接。
$ pwd /var
$ ln -s /tmp /var/tmp
现在如果我在/var目录中列文件,就能够看到刚才建立的链接:
$ ls -l
$ lrwx rwx rwx 1 root root 5567 sep 9 10:40 tmp->/tmp

 

  用户为当前目录下的文件lunch创建了一个符号链接/home/xu。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值