场景:

开发A在windows环境下完成了开发,配置管理员cm搭建jenkins在centos环境下编译,cm编译失败,但是开发A在他的windows环境下可以编译过,最后发现是某几个so文件的软链接方式不一样导致的,在linux上编译,需要重新使用ln -s 来设置软链接,此处,我们不关注windows是如何设置软链接的。

此时比如/root/third/目录下有文件:

libffpeg.so

libffpeg.so.12.11

其中libffpeg.so是软链接,软链接的原始文件是libffpeg.so.12.11,如果直接执行ln -s libffpeg.so.12.11 libffpeg.so 会直接报错libffpeg.so已经存在,必须删除以后才能执行成功,此时,shell脚本,我们会这样写:

#!/bin/sh
if [ -f libffpeg.so ] ; then
    rm libffpeg.so
    ln -s libffpeg.so.12.11 libffpeg.so
fi

你会发现这个if完全没有执行,我们用的是 “ -f ”参数来判断这个软链接文件是否存在,那么软链接文件是不是一个文件呢,其实软链接文件不能说是一个文件,只能算一种符号链接,所以使用“-f ” 来判断文件是不行的,应该使用 “ -L”来判断指定的是否为符号链接,正确的写法如下:

#!/bin/sh
if [  -L libffpeg.so ] ; then
    rm libffpeg.so
    ln -s libffpeg.so.12.11 libffpeg.so
fi

结果显示如下:

参考 if的条件判断如下:

-d :判断指定的是否为目录
-z:判断指定的变量是否存在值
-f:判断指定的是否为文件
-L:判断指定的是否为符号链接
-r:判断指定的是否可读
-w:判断指定的是否可写
-x:判断存在的对象是否可以执行
!:测试条件的否定符号

ln -s软链接文件算文件吗的更多相关文章

  1. Linux下的文件及文件后缀名

    Linux下的文件及文件后缀名 2013-03-14 15:34 6969人阅读 评论(0) 收藏 举报 ++++++++++++++++++++++++++++++++++++++正文+++++++ ...

  2. 从零开始学Linux[一]:基本命令:系统信息、目录、文件、文件编辑

    摘要:linux基础学习:系统信息.目录.文件查找.文件操作.查看文件内容及大小.软链接.VIM使用. 现在Linux的使用非常普遍.对于一个小白来说,满屏幕的字母,看起来就是一头雾水~   目前由于 ...

  3. linux 下的使用 ln 创建 软链接 和 硬链接

    linux 下的一个指令 ln 作用: 创建软链接或者硬链接 Linux 系统下每创建一个文件,系统都会为此文件生成一个 index node 简称(inode) ,而每一个文件都包含用户数据(use ...

  4. linux ln 命令使用参数详解(ln -s 软链接)

    ln是linux中一个非常重要的命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在 ...

  5. linux ln 建立软链接-- 基于dubbo-zookeeper服务的 服务jar 引用公共的 lib

    对于ln命令网上有很多的教程,这里不再复述, 其基本目的是:多个文件夹公用一个文件夹的里的文件. 其基本命令格式: ln [option] source_file dist_file (source_ ...

  6. linux ln 命令使用参数详解(ln -s 软链接)(转)

    这是linux中一个非常重要命令,请大家一定要熟悉.它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln -s 源文件 目标文件. 当 我们需要在不同的 ...

  7. ln -s 软链接知识总结

    ln -s 软链接知识总结 1.软连建立:ln  -s  源文件 软链接文件 2.误区:软链接是创建的,就意味着软链接文件不可以在创建之前存在 3.类比:win快捷方式 4.删除:rm就可以,但源文件 ...

  8. Windows内核开发中如何区分文件对象究竟是文件还是文件夹?

    今天有同行问了一个问题,Windows文件过滤驱动里的如何去区分一个对象是文件还是文件夹?我花了1小时左右翻阅了一些微软的文档以及以前的遗留代码,发现在WDK的帮助文档中是这么定义的: FILE_OB ...

  9. 如何为基于windows验证的站点的某个页面、文件或文件夹单独设置匿名访问

    在MOSS的项目中,我们经常碰到要单独为基于windows验证的站点的某个页面.文件或文件夹单独设置匿名访问即不登录就可以直接访问.比如说站点的A的某些图片或文件URL存在B站点下的文件夹下.此时访问 ...

随机推荐

  1. scrapy 通过FormRequest模拟登录再继续

    1.参考 https://doc.scrapy.org/en/latest/topics/spiders.html#scrapy.spiders.Spider.start_requests 自动提交 ...

  2. webpack打包后该如何访问项目?

    一.问题描述 开发环境,页面浏览都OK,产出文件后,直接打开产出目录的index.html,页面空白. 二.预期结果 能正常看到页面. 三.问题分析 你可能会在编译的最后看到如下一句话: Tip: b ...

  3. npm那些事儿

    npm,Node Package Manager,是node.js的模块依赖管理工具,安装nodejs时,一般会附带npm包管理工具. 一.npm相关1.npm的用途 能解决NodeJS代码部署上的很 ...

  4. python yield 和 yield from用法总结

    #例1. 简单输出斐波那契數列前 N 个数#缺点:该函数可复用性较差,因为 fab 函数返回 None,其他函数无法获得该函数生成的数列#要提高 fab 函数的可复用性,最好不要直接打印出数列,而是返 ...

  5. Node.js c++ 扩展之HelloWorld

    测试环境 vs:vs2017 node.js:9.9.6 相关地址 官方文档对应地址:https://www.nodejs.org/api/addons.html 官方案例对应地址:https://w ...

  6. ECMA Script 6_Symbol() 唯一类型值声明函数_Symbol 数据类型

    Symbol 数据类型 let s = Symbol(); typeof s; // "symbol" 是 ES6 继 Number,String,Boolean,Undefine ...

  7. docker container 互联

    创建一个 network docker network create test-network 创建rocketmq docker run -d  -p 9876:9876 -p 10909:1090 ...

  8. MyOD-Linux od命令的实现

    MyOD 一.设计思路 确定MyOD的要求 根据需求可知MyOD需要实现类似Linux下 od -tx -tc XXX的功能,于是先去网上查找了一下od命令的-tx以及-tc参数的作用,经查找后了解到 ...

  9. C#获取本周五日期字符串

    using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using ...

  10. 报文分析5、UDP协议的头结构

    UDP协议的头结构 源端口(2字节) 目的端口(2字节) 封报长度(2字节) 校验和(2字节) 数据 (1)源端口(Source Port):16位的源端口域包含初始化通信的端口号.源端口和IP地址的 ...