一、文件间的链接:
1、硬链接:
从初始名称到文件系统上的数据,每个文件都以一个硬链接开始。当创建指向文件的新硬链接时,也会创建另一个指向同一数据的名称。新的硬链接与原始文件名的作用完全相同。
(1) ls-l 命令:确定文件所具有的硬链接数。
(2) ln命令:创建一个指向现有文件的新硬链接(另一个名称),该命令至少需要两个参数,即现有文件的路径以及要创建的硬链接的路径。
(3) ls –i命令:确定两个文件是否是彼此的硬链接,列出文件的索引节点编号,如果文件位于同一文件系统且它们的索引节点编号相同,则这两个文件指向同一数据的硬链接。
2、硬链接局限性:
(1)只能用于常规文件,不能创建指向目录或特殊文件的硬链接。
(2)只有两个文件都位于同一文件系统上时,才能使用硬链接。
3、df命令:列出位于不同文件系统上的目录(添加-h选项检查系统和空间大小)
4、软链接:也称符号链接,指向现有文件或目录的特殊类型的文件,不是常规文件;可以链接位于不同文件系统上的两个文件。
5、ln –s命令:用于创建软链接。
二、shell扩展匹配文件名:
1、扩展命令行的方式:
Shell的扩展命令行的方式包括模式匹配、主日录扩展、字符串扩展和变量替换。最强大的或许是路径名称匹配功能,在过去被称为通配。可以管理大量文件变得更加轻松,使用元字符来匹配要寻找的文件名和路径名,一次性针对集中的一组文件执行命令。
2、元字符和匹配项表:
模式 | 匹配项 |
* | 由零个或更多字符组成的任何字符串 |
? | 任何一个字符串 |
[abc...] | 括起的类中的任何一个字符 |
[!abc..] | 不在括起的类中的任何一个字符 |
[^abc...] | 不在括起的类中的任何一个字符 |
3、波形符扩展:
(1)波形符(~)可匹配当前用户的主目录。
(2)echo命令:用于显示波形字符的值,显示大括号和标量扩展字符的值。
4、大括号扩展:
用于生成任意字符,大括号包含字符串的逗号分隔列表或顺序表达式,结果包括大括号定义之前或之后的文本,可以互相嵌套。例如{m..p}扩展为{m n o p}
5、变量扩展(赋值):
类似于在内存中存储值的命令容器,通过变量实现访问和修改存储的数据,常见由$符开头。
6、命令替换:
允许命令的输出替换命令行上的命令本身,当命令在括号中并有$符时会发生替换,同时可嵌套。
7、防止参数被扩展:
为字符和字符串添加引号或执行转义,反斜杠(\)是转义字符,防止字符被扩展。