Learning Perl(Perl语言入门)学习笔记(11)

第十二章  目录操作

 

1、  chdir 函数用来改变工作目录,类似于shell 命令 cd;更改目录成功时返回值为“真”,否则为“假”;如果省略chdir 的参数,Perl会试图将工作目录转向当前用户的主目录;每次目录更改后都应该测试其结果;

2、  shell 将命令行里的文件名模式展开成所有匹配的文件名的功能就称为globbing,也叫文件名模式匹配;如:my @files = glob “.* *”

3、  在使用glob时,也可以省略关键字glob而用一对尖括号“<>”代替;如 my  @files = <*> ;由于尖括号也用来表示从文件句柄读取内容,于是,如果尖括号中的内容满足Perl标识符的条件就从文件句柄读,否则就代表从glob读(但是,当尖括号的内容是简单标量变量时则表示从“间接式文件句柄读取”);Perl会在编译时决定从哪儿读,因此,和变量内容无关;也可以使用readline函数执行间接式文件句柄读取;

4、  目录句柄类似于文件句柄,可以用来从目录中读取文件名列表;目录句柄在程序结束时自动关闭,在又一次被打开时也会自动关闭前一次的打开;返回的名称列表未经任何方式的排序,而且包含所有文件(包括点号开头的);为了排除 . (句点)开头的文件,可以在循环中处理,如:

     while ($name = readdir DIR) {

     next  if  $name =~ /^/./;  

next  if  $name eq “.” or $name eq “..”;   #只用来排除 . .. 两个目录;

}

5、  打开目录句柄使用opendir 函数,读取使用 readdir 函数,关闭时使用 close 函数;readdir返回的文件名不包含路径名称,因此在需要时需要先取得其目录路径,而后将取得的文件名接续在目录名后方可;

6、  unlink 函数用来删除文件,其参数是文件列表,因此可以一次删除多个文件;返回值为成功删除的文件的个数,0表示没有移除任何文件;如因文件权限等删除不成功,错误信息会存储于变量$!中;unlink不能用来移除目录;

7、  rename 函数用来为现有的文件重命名,格式为:rename “old”, “new” 

8、  link 函数用来创建一个硬链接;格式为: link “old”, “new”  ;symlink用来创建一个符号链接,格式为:  sysmlink “old”,  “new”  ;使用这两个操作创建链接时应该检查其返回值;如:

link “password”, “passwd” or warn “Can’t link passwd to password: $!”

9、  mkdir 函数用来创建新目录,创建目录时应该检查其返回值;其形式有:

a)         mkdir  其后没有任何参数,目录名为$_,权限为0777

b)        mkdir  “filename”  其后只有文件名参数,权限则默认设为0777

c)        mkdir “filename”, MASK  MASK来指定目录权限,0开头表达八进制;

由于当成字符串来用的数值会被当成十进制处理,因此,形如 $mask=”0755” (如果没有外面的引号则无妨)调用作权限位时会被当成十进制处理,此时可以用函数oct 强制转换,如: oct($mask)

10、              rmdir 函数用来删除空目录;

11、              chmod 函数用来修改文件或目录的权限,格式类似于unixchmod命令, chmod MASK, “filename”;其第二个参数可以是文件名列表;返回值为成功修改的项目数量;

12、              chown 函数用来更改文件的拥有者及其所属的组;文件可以是列表;格式为:

        chown $uid, $gid, @filenames ;

    返回值为成功更改的项目的数量;如果想使用用户名及组名来代替uidgid,则需要使用getpwnam函数先获取用户的gid,用getgrnam来获取gid

utime 函数用来修改文件的最新访问和最新修改时间,前两个参数是新的访问时间和新的修改时间,后面的参数是文件名列表;时间格式采用内部的时间戳格式,如果前两个参数为空,通常会被设为当前时间; 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值