Perl语言学习笔记 13 目标操作

这篇博客介绍了Perl语言在文件和目录操作方面的知识,包括改变目录、文件名通配、目录句柄、删除文件、重命名文件、链接与文件、建立及移除目录、修改权限、更改隶属关系和修改时间戳等。示例代码详细展示了各种操作的用法,如使用chdir改变目录,glob进行文件名匹配,rename进行文件重命名,以及chmod修改文件权限等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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,没有函数可以修改它。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值