Shell 查找符号链接及其指向目标

Shell 查找符号链接及其指向目标,符号链接在类Unix系统中很常见。使用它的理由有很多,要么是为了便于访问,要么是为了维护同一代码库或程序的多个版本。本章中我们讨论了处理符号链接的一些基本方法。

符号链接是指向其他文件或目录的指针。它在功能上类似于Mac OS中的别名或Windows中的快捷方式。删除符号链接不会影响到原始文件。

Shell查找符号链接及其指向目标

实战演练

我们可以按照下面的步骤来处理符号链接。

(1) 创建符号链接:

$ ln -s target symbolic_link_name

例如:

$ ln -l -s /var/www/ ~/web

这个命令在当前用户的主目录中创建了一个名为Web的符号链接。该链接指向/var/www。

(2) 使用下面的命令来验证链接是否已建立:

$ ls -l web
lrwxrwxrwx 1 slynux slynux 8 2010-06-25 21:34 web -> /var/www

web -> /var/www表明web指向 /var/www。

(3) 打印出当前目录下的符号链接:

$ ls -l | grep "^l"

(4) 打印出当前目录及其子目录下的符号链接:

$ find . -type l -print

(5) 使用readlink打印出符号链接所指向的目标路径:

$ readlink web
/var/www

工作原理

在使用grepls显示当前目录下的符号链接时,grep ^l命令用于对ls -l的输出进行过滤,只显示那些以l起始的行。^表示字符串的起始位置。其后的l指定了字符串必须以l开头,这标识了一个符号链接2

2该方法利用了这样一个事实:每个符号链接的权限标记块(lrwxrwxrwx)均以字母l起始。

在使用find时,选项-type l告诉find命令只搜索符号链接文件。-print选项将符号链接列表打印到标准输出(stdout)。使用当前目录作为搜索起始路径。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程