第三章 访问文件和目录 目录树 图3-1表示了一个Solaris目录树的一部分。显示了存放某一用户的文件和目录的位置。 路径名 路径名是用来唯一识别某一具体文件和目录在目录树中的位置。路径名与路径映射类似,显示了如何从目录树中的一个位置到另外一个位置。 目录名中的/作为目标名称之间的分隔符,目标名称可以是目录名或者是文件名,路径名中的第一个/通常代表根目录,例如: /export/home/user1/dir1/coffees 根据系统的设置,用户的home目录可以位于/export/home目录或者/home目录。 路径名称的类型 有两种类型的路径名称:绝对路径和相对路径 绝对路径名:绝对路径名指明了一个文件或者目录相对于整个Solaris目录树的位置。绝对路径总是: 以根目录开始,然后列出每个目录路径直到最终的目标,可以是一个文件或者另外一个目录。 在路径中使用/来分割每个目标名称,/作为目标名称之间的分隔符,目标名称可以是一个目录名或者文件名 相对路径: 相对路径描述了一个目录或者文件相对于当前目录的位置,相对路径从不以/开始,不过仍然使用/作为目标名称之间的分隔符(例如文件和目录之间)。如果在一个目录中,你想访问在这个层次中的另外一个目录,不必键入绝对路径名。只要输入树结构向下一级路径名即可。 文件和目录命名规则:当创建一个文件或者目录时,遵守下列规则是相当重要的: 文件或者目录名称最多可以包括255个字符; 非字母字符,例如下划线( )、连字符(-)、句点(.)也可以使用在文件和目录名中; 特殊字符,例如星号(*)、And字符(&)、管道号(|)、引号(””)不可以使用,因为这些字符对于shell而言有特殊含义; 目录名称,习惯上而言,不包括扩展名,你仍然可以使用带扩展名的目录名; 改变目录 在任何时候,你都处于目录树中的当前工作目录。你最初登录系统时,当前工作目录设置为你的home目录。任何时候你都可以使用cd命令来改变你的当前工作目录。 命令格式: cd directory_name 在目录树中切换 以下示例显示了如何在目录树中改变目录: 使用绝对路径: $ cd /export/home/user1/dir1/coffees 使用相对路径: $ cd user1/dir1/coffees 使用不带参数的cd命令在可以回到你的home目录 $ cd 显示当前目录 pwd命令可以打印出当前工作目录,确定你当前工作在哪个目录。Pwd命令显示当前工作目录的绝对路径。 命令格式: $ pwd 使用带路径名缩写来改变目录 路径名缩写通常用在命令行方式中快速改变目录的方法中。 路径名称缩写 。 当前工作目录 。。 父目录,当前工作目录的直接上一级目录 以下示例显示了如何使用路径名缩写来在Solaris目录树中切换: $ cd /export/home/user1/dir1 $ cd 。。 $ pwd 显示目录内容 使用ls命令可以显示一个目录的内容,该命令显示制定目录下的所有文件和目录,使用不带参数的ls命令只是简单显示当前目录的内容 命令格式 ls –options pathnames 显示隐藏文件 以。开头的文件成为隐藏文件,隐藏文件通常用于定制你的工作环境。使用ls –a可以列出一个目录下的所有文件,包括隐藏文件。 显示文件类型 使用ls –F命令可以显示文件类型,不同的文件类型符号如下: 目录/ 可执行文件 * 文本文件或ASCII文件(none) 符号链接@ 显示长输出列表 为了得到一个目录内容的详细信息,使用ls –l命令。 单输出目录列表 使用ls –ld命令列出当前工作目录的详细信息,而不是它的内容。 使用ls –R命令显示一个目录和它的所有子目录的内容,通常这称为为递归列表。 元字符 元字符是特殊字符,或者称为符号,对shell而言有特殊的含义。元字符的一些示例有: ~ - + * ? [ ] ; $ < > | 使用~符号 shell用当前用户的home目录替换~符号。它是绝对路径名的缩写。例如: $ cd ~/dir1 $ pwd $ /export/home/user1/dir1 ~字符除了在Bourne shell外所有的shell都可用。 使用 ~username 在~后面紧跟username代表指定用户(login ID)的home目录,例如: $ cd ~user2 $ pwd $ /export/home/user2 使用~+和~- ~+符号代表当前工作目录,~-符号代表前一个工作目录(也就是进入当前工作目录之前所在的目录)。 使用dash- 为在特定的两个目录之间切换,使用Korn shell的-符号。Korn shell自动显示带特定参数的当前目录路径(在当前工作目录以及进入当前工作目录之前所在目录之间切换)。 使用*符号 星号代表零个或者多个字符,不包括隐藏文件开头的.字符。星号通常称为通配符。 使用问号(?) 问号?匹配任意单个字符,不包括隐藏文件开头的.字符。 使用方括号[] 使用方括号来匹配某一单个字符位置上的一个字符集合和范围。当查找字符集合时,在[]里面不需要指定任何顺序,例如,[abc]、[cab]、[bac]是一样的。 但是,当我们希望匹配一个字符范围时,必须指定正确的顺序,例如:[a-z]、[0-9]。 查找所有的字母字符,不管是否大小写,使用模式[a-z]或[A-Z]来匹配。
|