perl中目录与时间戳操作

发布时间:2020-02-03编辑:脚本学堂
perl中目录与时间戳操作,感兴趣的朋友可以参考下。建立和删除目录
mkdir 函数可以在一个已有的目录中建立一个目录。返回真时表示成功。
mkdir "aaa",0755 or warn "cann

perl中目录与时间戳操作,感兴趣的朋友可以参考下。

建立和删除目录
mkdir 函数可以在一个已有的目录中建立一个目录。返回真时表示成功。
mkdir "aaa",0755 or warn "cannot make aaa directory:$!";
第二个参数是新生成目录的权限位。以 0 开头,这个是一个八进制值。

oct 函数强制对一个字符串按八进制解释,不论前面有没有 0 :

删除空目录,可用 rmdir 函数。
rmdir glob "aa/*";   删除 aa/ 下所有空目录。

rmdir 操作符对非空目录操作会失败。所以要先用 unlink 删除文件,再删除目录。

修改权限
perl 中有一个 chmod 函数,和 unix shell 中的 chmod 完成类似功能。
chmod 0755, "aa","bb";
perl 中不接受符号权限表达式方式,如 +x,go=u-w 等。

改变所有者
chown 函数可以改变一组文件的所有者和属组。
chown 1004,100,glob "*.o";
可用 getpwnam 把用户名翻译成一个数字,用 getgrnam 函数把组名翻译成一个数字。

改变时间戳
utime 函数可修改文件的访问时间和修改时间。
my $now = time;
my $ago = $now -24*60*60;   每天的秒数
utime $now,$ago,glob "*";   把访问时间设为现在,修改时间设为一天以前

第三个时间 ctime 的值在对文件做任何改变时,总被设为 “ 现在 ” ,因此没办法用 utime 函数来设置它。因为在你设置完后它会立即被重置为“现在”,这是因为它的主要目的是进行增量备份:如果文件的 ctime 比备份磁带上的日期要新,则说明又需要备份了。