linux下建立符号链接

用法介绍
ln [参数] [-T] 原始文件 链接名称 第一种形式
ln [参数] 原始文件 第二种形式
ln [参数] 原始文件 链接存在的文件夹  第三种形式
ln [参数] -t 链接存在的文件夹 原始文件 第四种形式
描述
第一种形式在建立建立连接文件,建立连接的目录可以在连接名称种之处;第二种形式在当前文件夹建立连接;第三种形式在指定的文件夹(第二个参数)建立链接,目录必须存在;在指定的文件夹(第一个参数)建立连接,目录必须存在;默认建立硬链接且原始文件必须存在。
参数
-s  符号链接,默认是硬链接
-f  如果链接文件存在则删除链接文件并建立新的链接文件

符号链接:相当于win下的快捷方式,
硬链接   :在某个目录下新增加一个该文件的关联数据,建立一个,比符号链接安全,但限制较多不能跨文件系统和分区,不能建立目录的硬链接
常见的用法
1. ln -s /root/tools/lln /root/tt/lln
在 /root/tt/建立lln的符号链接,删除原文件符号文件lln将不能使用
2.ln /root/tools/lln /root/lln
在/root/tt/建立lln的硬链接,删除任意一个其他那个还可以用
3. ln -s /root/tools /root/tt
建立目录的符号链接,tt里边会有tools为名的文件夹链接指向源文件夹
4.ln -s /root/tools/*  /root/tt
建立指向源文件所有文件的链接,为了兼容源文件夹下有子文件夹所以建立符号链接,当然*可以用正则代替,但是如果想建立链接向源文件夹下多个执行文件的链接呢?

果文件比较多而且还要有规则肿么办?可以通过这个脚本来实现:

#!/bin/sh
#############################################################################################################################################################################
# author banzhang@chunshiban.com                                                                                                                                            #
# version 1.0                                                                                                                                                               #
# last modify time 2012-06-29 16:25                                                                                                                                         #
# update http://soft.chunshiban.com/linux/script/shell/lln.tar.z                                                                                                            #
# 主要用来为一个文件夹下的多个可执行文件建立符号链接,比如将/usr/local/bin 下的可执行性文件连接到 /usr/local/lamp下可执行 lln /usr/local/bin/ /usr/local/lamp/ ;            #
# 支持grep正则表达式比如以cc开头的可执行文件连接到/usr/local/lamp/下课桌椅执行lln /usr/local/bin /usr/local/lamp/ cc*即可                                                   #
#############################################################################################################################################################################

cd $1
oldDir=`pwd`
#newDir=`echo $2|sed -r 's/\/$//'`
cd $2
newDir=`pwd`
cd $oldDir
if [ $# == 2 ];then
    declare list=`ls ./`
elif [ $# == 3 ];then
    declare list=`ls ./|grep $3`
else
    echo "use:lln TARGET LINK_NAME [PATTERN]"
    exit
fi
for bin in $list
do
    if [ -f "$bin" -a -x "$bin" ]; then
        echo "$oldDir/$bin will be link to $newDir/$bin"
        read -p "Please input Y/N: " -t 10 yn
        if [ "$yn" == "Y" -o "$yn" == "y" ]; then
            `ln -s $oldDir/$bin $newDir/$bin` && echo "$oldDir/$bin link to $newDir/$bin ok!"
        else
            echo "pass the file $oldDir/$bin"
            echo ""
        fi
    fi
done

这在我们整合多个项目的时候很有用,比如需要把跟lamp服务相关的文件整合到一起:php,mysql,apache,memcached,redis等监控工具,放到一起然后引入到环境变量中.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值