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

在类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中创建与查找符号链接的方法,就介绍到这了,希望对大家有所帮助。

(0)

相关推荐

  • Linux Shell中的特殊符号和含义简明总结(包含了绝大部份)

    在Linux Shell中有很多的特殊符号,这对于我们写Shell脚本时要特别留意:一方面要知道这些特殊符号的用法,这些符号用好了可以达到事半功倍的效果:但另一方面要避免这些特殊符号的过度使用而导致脚本难以调试.难以阅读. 这些特殊符号罗列出来大致如下: 复制代码 代码如下: # ; ;; . , / / 'string'| ! $ ${} $? $$ $* "string"* ** ? : ^ $# $@ `command`{} [] [[]] () (()) || &~ ~

  • PowerShell实现在控制台中插入绿色的打勾符号

    在前面的PowerShell技巧中,我们看到了PowerShell控制台支持输出所有TrueType字体的字符,你只需将你的字符代码转换成Char类型.今天再来一个更高级的例子,让用户在控制台中插入绿色的打勾符号. $greenCheck = @{ Object = [Char]8730 ForegroundColor = 'Green' NoNewLine = $true } Write-Host "Status check... " -NoNewline Start-Sleep -

  • linux shell中的比较符号与特殊符号介绍

    shell字符串比较.判断是否为数字 二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别. 整数比较 -eq 等于,如:if [ "$a" -eq "$b" ] -ne 不等于,如:if [ "$a" -ne "$b" ] -gt 大于,如:if [ "$a" -gt "$b" ] -ge 大于等于,如:if [ "$a" -ge "$b"

  • PowerShell在控制台输出特殊符号的方法

    您知道吗,PowerShell控制台也可以输出特殊的图标?而你需要做的只是,设置控制台的字体为TrueType 字体,比如"Consolas". 要显示特殊字符,请使用十进制或十六进制字符代码,例如: [Char]8730 [Char]0x25BA 或着打开系统上内置的应用程序 "CharacterMap" 来选择一个你想在控制台上显示的的符号.下面的例子就是通过这种途径来把PowerShell控制台上的提示符信息变得更加诡异: 或着打开系统上内置的应用程序 &qu

  • 浅析shell脚本知识之符号篇

    shell Shell还有一种执行命令的方式称为批处理(Batch),用户事先写一 个Shell脚本(Script),其中有很多条命令,让Shell一次把这些命令执行完,而不必一条一条地敲 命令.Shell脚本和编程语言很相似,也有变量和流程控制语句,包括循环和分支.但Shell脚本是解释执行的,不需 要编译,Shell程序从脚本中一行一行读取并执行这些命令,相当于一个用户把脚本中的命令一行一 行敲到Shell提示符下执行.作为程序设计语言,它虽然不是 Linux系统内核的一部分,但它调用了系统

  • shell脚本中常见的一些特殊符号和作用详解

    在编写Shell脚本时,我们需要会用到各种各样的特殊符号,通过这些特殊符号可以使我们编写的代码更加简洁和高效,这里给大家汇总下: 1.{} 大括号: 用法一:通配符扩展 eg: ls my_{finger,toe}s 这条命令相当于如下命令的组合: ls my_fingers my_toes eg: mkdir {userA,userB,userC}-{home,bin,data} 我们将得到 userA-home, userA-bin, userA-data, userB-home, user

  • shell脚本中一些特殊符号

    在shell中常用的特殊符号罗列如下: # ; ;; . , / \\ 'string'| ! $ ${} $? $$ $* \"string\"* ** ? : ^ $# $@ `command`{} [] [[]] () (()) || &~ ~+ ~- & \\<...\\> + - %= == != # 井号 (comments) 这几乎是个满场都有的符号,除了先前已经提过的\"第一行\" #!/bin/bash 井号也常出现在一

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

    在类unix系统中,符号链接是很常见的,我们会碰到各种与符号链接相关的处理工作.本文为大家介绍一些处理符号链接的实践方法,希望对大家编写shell脚本时带来一些帮助,有需要的朋友不妨参考下. 1.符号链接可以看作是指向其它文件的指针.它在功能上类似于Mac OS中的别名或windows中的快捷方式,记住是类似,而非就是哦.2.删除符号链接不会影响到原始的文件. 创建符号链接:$ ln -s target symbolic_link_name 例如:$ ln -s /var/www/ ~/web这

  • shell去掉文件中空行(空白行)的方法详解

    本文详细介绍了使用shell去除文件中的空行的方法,学习下sed.awk.shell文件检测的方法,有需要的朋友可以作个参考. 本节内容:shell去掉文件中空行 1,shell 去掉文件中的空行 复制代码 代码如下: cat filename | sed -e '/^$/d' > filename 2,保留最新的9个文件,其它的文件删除的命令语句 复制代码 代码如下: ls -t | awk '{if(NR>9){print $0}}' |xargs rm -f 附,shell中的特殊变量

  • shell简单处理mysql查询结果的方法

    首先理清要了解shell脚本的数组与字符串的一些特性: str=("hello" "world" "!") #结果: str: 3 #普通的字符串数组 echo "str: " ${#str[@]} str1=("hello world !") #结果: str1: 1 #普通的字符串数组 echo "str1: "${#str1[@]} str2=(`echo "Hello

  • shell脚本实现服务器进程监控的方法

    写作背景: 项目是基于java.weblogic及timer的处理模式,每次服务部署之后timer的整体状态是一个盲区,因为100多个进程,是否有启动遗漏或者启动重复的,想做到一目了然是件困难的事情.所以我考虑用shell脚本的文件查找与匹配方法来解决这个问题,简单记录下,仅供参考. 程序说明: 1)通过将系统定义的进程(timer)配置到配置文件process_signal.config中 2)将服务器当前所有的java进程存储到process_current.txt中 3)逐行读取proce

  • linux shell 根据进程名获取pid的实现方法

    导读 Linux 的交互式 Shell 与 Shell 脚本存在一定的差异,主要是由于后者存在一个独立的运行进程,因此在获取进程 pid 上二者也有所区别. 交互式 Bash Shell 获取进程 pid 在已知进程名(name)的前提下,交互式 Shell 获取进程 pid 有很多种方法,典型的通过 grep 获取 pid 的方法为(这里添加 -v grep是为了避免匹配到 grep 进程): ps -ef | grep "name" | grep -v grep | awk '{p

  • shell脚本无密码登录 expect的使用方法详解

    shell脚本无密码登录 expect的使用方法详解 今天需要做一个定时任务脚本将最新的数据包文件传到远程的服务器上,虽然有密钥但也是要求输入密码的那种,所以只能另想办法实现让脚本自动输入密码了. 从网上查到使用expect可以,简单研究了一下,效果不错. 因为我的操作系统没有安装expect,所以直接"yum -y install expect",你可以根据你的操作系统安装expect,或者源码编译. 安装好之后就可以使用了,这里有几种方法: 一.单独写一个脚本 如 auto_scp

  • shell 使用数组作为函数参数的方法(详解)

    因工作需要,需要使用shell开发一些小工具,当使用数组作为函数参数时,发现只能传递数组的第一个元素,数组后面的元素不能传递到函数内. #!/bin/bash function showArr(){ arr=$1 for i in ${arr[*]}; do echo $i done } regions=("GZ" "SH" "BJ") showArr $regions exit 0 把代码保存为test.sh后执行,只输出了第一个元素. ./t

  • php快速查找数据库中恶意代码的方法

    本文实例讲述了php快速查找数据库中恶意代码的方法.分享给大家供大家参考.具体如下: 数据库被输入恶意代码,为了保证你的数据库的安全,你必须得小心去清理.有了下面一个超级方便的功能,即可快速清除数据库恶意代码. function cleanInput($input) { $search = array( '@]*?>.*?@si', // Strip out javascript '@<[\/\!]*?[^<>]*?>@si', // Strip out HTML tags

  • Yii使用find findAll查找出指定字段的实现方法

    本文以实例形式展示了Yii使用find findAll查找出指定字段的实现方法,分享给大家供大家参考之用.具体方法如下: 总所周知,采用如下方法: modelName::model() -> find() //找出的是一个对象 modelName::model() -> findALL() //找出的是一个对象集合的数组 可以找出对象与对象集合的数组,那么如何找出我所需要的字段的数据,而不是全部字段的数据呢?之前我是这么做的: $criteria = new CDbCriteria; $cri

  • Python基于二分查找实现求整数平方根的方法

    本文实例讲述了Python基于二分查找实现求整数平方根的方法.分享给大家供大家参考,具体如下: x=int(raw_input('please input a int:')) if x<0: retrun -1 low=0 high=x ans=(low+high)/2.0 sign=ans while ans**2 !=x: if ans**2>x: high=ans else: low=ans ans=(low+high)/2.0 if sign==ans: break print ans

随机推荐