第5章Linux目录和文件管理;目录;;;;;;;;;;;;;;每个文件都包括文件名称、文件长度、文件的用户所有者等文件信息,这些文件元信息都被存储在专门的存储区域中,就是我们接下来要介绍的inode和目录项。
其中inode包括文件长度、文件的用户所有者、文件的组群所有者、文件的权限、文件的时间戳、文件链接数、文件数据块的位置等;而目录项则包括文件的文件名称及该文件名称对应的inode号码。;;;;;;;1.目录和文件的命名
Linux对文件或目录命名的要求是比较宽松的,命名原则如下:
? 除字符“/”以外,所有的字符都可以使用,但是在目录名或文件名中使用某些特殊字符并不是明智之举。例如,应该避免使用“”、“”、“?”、“*”和非打印字符等。如果一个文件名中包含了特殊字符,如空格,那么在访问这个文件时就需要使用引号将文件名引起来。
? 目录名或文件名的长度不能超过255个字符。
? 目录名或文件名是区分大小写的。但是使用字符大小写来区分不同的文件或目录也是不明智的选择。
? 文件的扩展名对Linux没有特殊的含义,这与Windows不一样。;文件是存放在目录中的,而目录又可以存放在其他的目录中,用户或程序可以通过文件名和目录名从文件树中的任何地方开始搜寻并定位所需的目录或文件,探寻的方法有两种,分别是绝对路径和相对路径。
一个绝对路径必须以一个正斜线“/”开始,表示根目录,并且必须遍历每一个目录的名称。绝对路径是文件位置的完整路径,因此在任何情况下都可以使用绝对路径找到所需的文件。
相对路径不是以正斜线“/”开始的,它包含从当前目录到要查找的对象(目录或文件)所必须遍历的每一个目录的名称。;;Linux提供了通配符,使用通配符可以代替文件名中未知的字符。
Linux提供了以下通配符。
? *:将匹配0个(即空白)或多个字符。
? ?:将匹配任何一个字符且只能是一个字符。
? [a-z]:将匹配a~z范围内的所有字符。
? [^a-z]:将匹配除a~z范围以外的其他字符。
? [xyz]:将匹配方括号中的任意一个字符。
? [^xyz]:将匹配不包括方括号中的字符的其他字符。;;在Linux中,许多字符对于Shell来说是具有特殊意义的。在Shell中有以下特殊符号。
? ~:用户主目录。
? `:反引号,用来代替命令(Tab键上面的那个键)。
? #:注释。
? $:变量取值。
? :后台进程工作。
? (:子Shell开始。
? ):子Shell结束。
? \:使命令持续到下一行。
? |:管道。
? :输入重定向。
? :输出重定向。
? :追加重定向。
? :标准输入。
? ‘:单引号(不具有变数转换的功能)。
? “:双引号(具有变数转换的功能)。
? /:路径分隔符。
? ;:命令分隔符。;;;使用cd命令可以更改用户的工作目录路径,工作目录路径可以使用绝对路径或相对路径。cd命令可以结合各种符号达到相应的效果。;ls命令用于查看目录中的文件和子目录,前面已经使用过,其选项非常多,其中最为常用的选项如下所述。;;;;;;;;;;;链接是一种在共享文件和若干目录项之间建立联系的方法。Linux包括硬链接和软链接。;;;;;文件和目录管理是Linux系统管理中基础的岗位能力,本节针对这种岗位能力设计了如下的实践任务。
(1)在根目录下建立/task、/task/etc、/task/train/task1、/task/train/task2等目录,查看/task目录的结构。
(2)复制/etc目录下所有以字母“b”“c”“d”开头的文件到/task/etc目录中(包括子目录),将当前目录切换到/task/etc目录中,以相对路径的方式查看/task/etc目录中的内容。
(3)将当前目录切换到/task/train/task1目录中,在当前目录中建立空文件file1.txt,以相对路径的方式将/task/etc/crontab文件复制生成新文件/task/train/task1/file2.txt,并查看当前目录下的文件。
(4)以绝对路径的方式,使用rm命令删除/task/etc/目录中以“cron”开头的所有文件或子目录,使用mv命令移动/task/etc/目录中以“dr”开头的文件或子目录到/task/train/task2目录中。
(5)使用file命令查看/task/etc目录中以“dn”开头的文件的文件类型。
(6)将当前目录切换到/task/train/task1目录中,使用相对路径的方式为file1.txt文件建立硬链接文件file3.txt,为file2.txt文件建立软链接文件file4.txt,链接文件均存放于/task/train/task2目录中,使用ll命令查