Perl语言学习笔记 13 目标操作
1、改变目录 chdir "/etc" or die "can't chdir to '/etc'!n"; 省略参数会回到用户主目录,与cd效果一样; 2、文件名通配 my @all_files = glob "*"; #不包括以点号开头的文件 my @pm_files = glob "*.pm"; 一次匹配多种模式,用空格隔开:my @files = ".* *"; #可以匹配所有的文件,包括以点号开头 3、文件名通配另一种语法 my @files = <*>; ##等效于:my @files = glob "*"; 支持变量内插:my $dir="/etc"; my @dir_files=<$dir/* $dir/.*>; 尖括号支持文件句柄和文件名通配,Perl会自行判断选择哪一种操作,如果是标识符,就当作文件读取,否则按文件名通配处理: 4、目录句柄 目录句柄可以打开(opendir)、读取(readdir,读取的为文件名)、关闭(close); 目录句柄是低级操作符,只能返回基本的信息,需要进行额外处理。 5、删除文件 unlink "file1","file2","file3"; ##返回成功删除的文件数,无法知道哪个删除失败 不能用来删除目录; 一次删除多个文件:unlink glob "*.o"; 删除文件的权限和文件本身的权限无关,取决于文件所在目录的权限,因此某个无法读取、写入、执行的文件也可能被删除; 6、重命名文件 rename "old","new"; 实现类似mv的效果:rename "/home/place/file1" "file2" 7、链接与文件 硬链接: 会使文件的链接数增加,只要有一个链接存在,文件就存在。 不能增加目录的链接数,不能跨挂载卷链接。 软链接(符号链接): 不会增加文件的链接数,可以指向不存在的文件 取得符号链接指向的位置: 8、建立及移除目录 建立目录: 0755为权限,无法将字符串直接解释成八进制数字,需用otc函数: 移除目录: 每次只能删除一个目录,并且必须是空目录,如果不是空目录,可以用unlink删除: $$:当前进程号。 如果目录中还有子目录,则unlink会失败,进而导致rmdir失败。File::Path模块中的 rmtree 提供了比较完整的解决方案。 9、修改权限 chmod 0755,"file1","file2"; 10、更改隶属关系 必须以数字形式指定用户标识符和组标识符,如果不知道,可采用如下方式处理: 11、修改时间戳 第三个时间戳 ctime 一定会被设为now,没有函数可以修改它。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |