原来你是这样的软连接

Linux系统下,软连接是我们常用来方便文件快速访问,节省空间,保证文件内容统一,简化环境变量设置的一个方式。使用起来也很简单 ln -s source target就可以搞定,但它总有调皮的时候。

文件目录结构如下所示,想把当前目录下的ehbio.fa链接到~/data目录下,按如下操作发现链接后的文件访问不了,提示符号连接的层数过多,仔细查看时原来是出现了一个自己指向自己的链接。问题出在建立软连接时源文件未使用全路径

ct@ehbio:~/ehbio_project$ ls
ehbio3.fa  ehbio4.fa  ehbio5.fa  ehbio6.fa  ehbio.fa  second.fa
ct@ehbio:~/ehbio_project$ ln -s ehbio.fa ~/data
ct@ehbio:~/ehbio_project$ less ~/data/ehbio.fa 
/home/ct/data/ehbio.fa: 符号连接的层数过多

ct@ehbio:~/ehbio_project$ ls -l ~/data
总用量 4
lrwxrwxrwx 1 ct ct   8 6月  21 15:48 ehbio.fa -> ehbio.fa
-rw-rw-r-- 1 ct ct 284 6月   8 2017 first.fa

正确方式是:pwd使用命令代替当前路径名,适合任何目录。

ct@ehbio:~/ehbio_project$ ln -sf `pwd`/ehbio.fa ~/data
ct@ehbio:~/ehbio_project$ ls -l ~/data
总用量 4
lrwxrwxrwx 1 ct ct  31 6月  21 16:00 ehbio.fa -> /home/ct/ehbio_project/ehbio.fa
-rw-rw-r-- 1 ct ct 284 6月   8 2017 first.fa

使用全路径名,尤其使用家目录 ~ 符号时,只限操作用户自身有效。另外不同用户之间建立软连接,需要考虑访问权限问题,任意一层目录都需要可读权限 (目录的可读为rx都有)。

关于软件安装和环境变量,我们之前有过介绍。当然最全的文档可以后台回复生信宝典福利第一波获取。这些内容中提到,如果觉得环境变量设置太繁琐了,那么建立一个目录比如~/bin,只需把这个目录放入环境变量 export PATH=~/bin:$PATH,以后新安装的软件,都把可执行程序软链到~/bin目录下,直接可用。

前几天这个使用方式竟然也出了个诡异的问题,比如运行bwa时,出现符号连接的层数过多,但是使用全路径运行无问题,说明不是bwa链接出错了。问题就应该是出在环境变量所包括的目录中了,确实是有个目录是软连接失效

原文发布于微信公众号 - 生信宝典(Bio_data)

原文发表时间:2018-06-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

6508
来自专栏Ceph对象存储方案

Luminous版本PG 分布调优

Luminous版本开始新增的balancer模块在PG分布优化方面效果非常明显,操作也非常简便,强烈推荐各位在集群上线之前进行这一操作,能够极大的提升整个集群...

3035
来自专栏张善友的专栏

Silverlight + Model-View-ViewModel (MVVM)

     早在2005年,John Gossman写了一篇关于Model-View-ViewModel模式的博文,这种模式被他所在的微软的项目组用来创建Expr...

2878
来自专栏陈仁松博客

ASP.NET Core 'Microsoft.Win32.Registry' 错误修复

今天在发布Asp.net Core应用到Azure的时候出现错误InvalidOperationException: Cannot find compilati...

4778
来自专栏杨龙飞前端

scrollto 到指定位置

2454
来自专栏java 成神之路

使用 NIO 实现 echo 服务器

4437
来自专栏张善友的专栏

LINQ via C# 系列文章

LINQ via C# Recently I am giving a series of talk on LINQ. the name “LINQ via C...

2605
来自专栏pangguoming

Spring Boot集成JasperReports生成PDF文档

由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲...

1.2K7
来自专栏一个会写诗的程序员的博客

Spring Reactor 项目核心库Reactor Core

Non-Blocking Reactive Streams Foundation for the JVM both implementing a Reactiv...

2102
来自专栏落花落雨不落叶

canvas画简单电路图

57011

扫码关注云+社区