shell查找符号链接及其指向目标的方法介绍

所属分类: 脚本专栏 / linux shell 阅读数: 755
收藏 0 赞 0 分享

在类unix系统中,符号链接是很常见的,我们会碰到各种与符号链接相关的处理工作。
本文为大家介绍一些处理符号链接的实践方法,希望对大家编写shell脚本时带来一些帮助,有需要的朋友不妨参考下。

1、符号链接可以看作是指向其它文件的指针。它在功能上类似于Mac OS中的别名或windows中的快捷方式,记住是类似,而非就是哦。
2、删除符号链接不会影响到原始的文件。

创建符号链接:
$ ln -s target symbolic_link_name

例如:
$ ln -s /var/www/ ~/web
这个命令在已登录用户的home目录中创建了一个名为web的符号链接。这个链接指向/var/www/。这些信息可以从下面的命令输出中看到:

复制代码 代码如下:

$ ls web
lrwxrwxrwx 1 slynux slynux 8 2013-02-07 19:16 web -> /var/www

上面显示信息中的:web -> /var/www 表明web指向/var/www。

对于每个符号链接而言,权限标记部分以字母"l"作为起始,表示这是一个符号链接。
因此,为了打印出当前目录下的符号链接,可以使用下面的命令:
$ ls -l | grep "^l" | awk '{print $8}'
grep对 ls -l 的输出进行过滤,只显示以l起始的那些行。^是字符串起始标记。awk用来打印出第8列,也就是文件名部分。

另一种方法是用find打印符号链接,如下所示:
$ find . -type l -print
在上面的命令中,将find命令的type参数指定为"l",告诉 find 只搜索符号链接文件。
-print 选项将符号链接列表打印到标准输出(stdout)。而"."表示从当前目录开始搜索。

使用下面的命令,可以打印出符号链接的指向目标:
$ ls -l web | awk '{print $10}'
/var/www
ls -l命令输出的每一行都对应一个文件的详细信息。
ls -l web会将符号链接文件web的详细信息全部列出。输出的第10列包含文件指向的目标(如果这是一个符号链接的话)。
因此,为了找出与符号链接相关联的目标,我们可以用awk打印出文件的详细列表(ls -l的输出)的第10列。

另外,我们也可以用readlink命令来完成同样的任务。某些时候,这是应该最优先考虑的用法,其用法如下:
$ readlink web
/var/www

好了,有关bash中创建与查找符号链接的方法,就介绍到这了,希望对大家有所帮助。

更多精彩内容其他人还在看

Shell脚本中计算字符串长度的5种方法

这篇文章主要介绍了Shell脚本中计算字符串长度的5种方法,来自于个人Shell脚本长期的开发经验,需要的朋友可以参考下
收藏 0 赞 0 分享

Shell脚本实现把进程负载均衡到多核CPU中

这篇文章主要介绍了Shell脚本实现把进程负载均衡到多核CPU中,可以把进程指定运行在某个CPU中,需要的朋友可以参考下
收藏 0 赞 0 分享

5个Shell脚本编程入门练习例子

这篇文章主要介绍了5个Shell脚本编程入门例子,涵盖了各种操作,又有一些游戏的性质,作为入门练习例子是不很不错的,需要的朋友可以参考下
收藏 0 赞 0 分享

Shell脚本编程中常用的数学运算实例

这篇文章主要介绍了Shell脚本编程中常用的数学运算实例,包含最基本的加减乘除,还有质数、偶数的判断等,需要的朋友可以参考下
收藏 0 赞 0 分享

5个实用的shell脚本面试题和答案

这篇文章主要介绍了5个实用的shell脚本面试题和答案,给出的脚本堪称编码规范,麻雀虽小,异常处理,友好提示,一应俱全,值得学习,需要的朋友可以参考下
收藏 0 赞 0 分享

使用bash shell删除目录中的特定文件的3种方法

这篇文章主要介绍了使用bash shell删除目录中的特定文件的3种方法,分别为扩展模式匹配符、GLOBIGNORE 变量和find 命令,需要的朋友可以参考下
收藏 0 赞 0 分享

Shell获取文件的文件名和扩展名的例子

这篇文章主要介绍了Shell获取文件的文件名和扩展名的例子,简明版的代码实例,看了就懂,需要的朋友可以参考下
收藏 0 赞 0 分享

Shell多线程操作及线程数控制实例

这篇文章主要介绍了Shell多线程操作及线程数控制实例,文中从单线程实现一个需求开始,不断加入代码实现多线程以及线程数的控制功能,需要的朋友可以参考下
收藏 0 赞 0 分享

阿里云主机一键安装lamp、lnmp环境的shell脚本分享

这篇文章主要介绍了阿里云主机一键安装lamp、lnmp环境的shell脚本分享,需要的朋友可以参考下
收藏 0 赞 0 分享

shell脚本转发80端口数据包给Node.js服务器

开发基于Node.js的WEB应用很方便,但是服务端口问题很蛋疼,由于Linux内核规定普通用户只能使用大于1024的端口号,所以使用普通用户运行Node.js服务就不能监听80端口
收藏 0 赞 0 分享
查看更多