您的位置:首页 > 其它

Perl-19---文件属性操作函数

2010-11-03 11:23 225 查看
一、文件位置重定位函数:

1、rename()函数:文件重命名

$Ret = rename(OldName,NewName);

该函数用于把旧文件名OldName重命名为一个新的名字NewName,或者是把文件OldName转移到指定目录NewName下面;两个参数都可以为字符串或者表达式;如果OldName与NewName同为文件名或同为目录名,而且OldName与NewName的目录名完全相同,则该函数完成的式重命名工作;如果OldName与NewName的文件名相同,但是路径不同,则该函数完成的式文件转移工作;

调用成功,则返回非零值(真:1);调用失败,则返回零值(假:0);

也就是说,重命名或转移文件成功,则rename()函数返回非零值(真:1);重命名或转移文件失败,则rename()函数返回零值(假:0);

2、unlink()函数:删除文件

$UnLinkFileNumbers = unlink(FileList) ;

该函数用于删除文件;参数是一个文件名列表或者存储一个文件名的简单变量,函数返回值为实际删除的文件数目;此函数之所以称为unlink而不是delete是因为unlink()函数实际上所做的是删除文件的链接,而不是真正地删除文件;因为Unix/Linux系统为每个文件都设置了一个链接计数,每次删除一个文件时,实际上是删除对该文件的一个链接,把链接计数减1,只有当链接计数变为0时,操作系统才会真正地去删除文件;

函数调用成功,则返回实际删除的文件数目(非零,真);调用失败,则返回零值(假:0);

也就是说,如果删除文件成功,则unlink()函数返回实际删除的文件数目(非零,真);删除文件失败,则unlink()函数返回零值(假:0);

二、文件的硬连接和符号连接

1、link()函数:

$Ret = link(File,HardLinkName);

该函数用于为文件File创建一个硬链接HardLinkName;File是链接的源(被链接的文件),HardLinkName则是新创建的链接名;当删除File和HardLinkName这两个名称中的一个的时候,仍然有通过另外一个名称来访问到这个文件的内容;

函数调用成功,则返回非零值(真:1) ;调用失败,则返回零值(假:0);也就是说,如果创建到文件File的硬链接HardLinkName成功,则link()函数返回非零值(真:1);如果创建到文件File的硬链接HardLinkName失败,则link()函数返回零值(假:0);

2、symlink()函数:

$Ret = symlink(File,SymLinkName);

该函数对现有的文件File创建一个符号链接SymLinkName,即:这个符号链接仅仅指向文件名File,而并不是指向文件File本身;参数何返回值与link()函数相同;当源文件被删除的时候,则所创建的符号链接不再可用,除非再创建一个与文件File同名的文件;

调用成功,则函数返回非零值(真:1);调用失败,则返回零值(假:0);也就是说,创建到文件File的符号链接SymLinkName成功的时候,symlink()函数返回非零值(真:1);创建到文件File的符号链接SymLinkName失败时,则symlink()函数返回零值(假:0);

3、readlink()函数:

$FileName = readlink(SymLinkName);

如果参数SymLinkName是一个符号链接文件,则函数返回该符号链接所指向的实际文件的文件名,否则返回空串;

三、文件权限许可函数

1、chmod()函数:

$Ret = chmod(Permissions,FileList);

该函数用于吧文件列表FileList中的文件的访问权限更改为参数Permissions所指定的权限;

chmod()函数返回文件列表FileList中已经被成功更改了访问权限的文件的数量,没有区分调用成功与否;

2、chown()函数:

$Ret = chown(NewUserID,NewGroupID,FileList);

用于更改文件列表FileList中所有文件的所有者;

NewUserID:新用户ID(数字);
NewGroupID:新组ID(数字);-1表示保留原组;

FileList:将要被改变所有者的文件的列表;

chown()函数返回文件列表FileList中已经被成功更改了所有者的文件的数量,没有调用成功与否;

3、umask()函数:

OldMask = umask(NewMask);

该函数用于设置文件的访问权限掩码;这个函数接收一个新的参数掩码NewMask,并返回当前正在使用的旧掩码值OldMask;

四、其它属性函数:

1、truncate()函数:

$Ret = truncate(File,Length);

该函数把参数File指定的文件的长度减少到Length字节。如果文件File的长度本来就小于Length字节,那么该函数什么都不做;其中参数File即可以是文件名,也可以是文件句柄;

函数调用成功,则truncate()函数返回非零值(真:1);调用失败,则返回空值(假);

2、stat()函数:

@FileStates = stat(File);

该函数用于获取文件File的状态;参数File既可以是文件名,也可以是文件句柄;

调用成功,则返回文件的属性列表;调用失败则返回空值;

stat()函数返回一个用于存放文件属性的列表,列表中元素的顺序为:

FileStates[0]:文件所在的设备;

FileStates[1]:文件的内部参考号(inode);

FileStates[2]:访问权限;

FileStates[3]:硬连接数;

FileStates[4]:拥有者的ID(数字);

FileStates[5]:所属组的ID(数字);

FileStates[6]:设备类型(如果File是设备的话);

FileStates[7]:文件大小(字节数);

FileStates[8]:创建时间;

FileStates[9]:最后修改时间或最后状态修改时间HH:MM:SS(00:00:00 ~ 23:59:59);

FileStates[10]:最后访问时间;

FileStates[11]:IO操作最佳块大小;

FileStates[12]:分配给该文件的块数;

3、lstat()函数:

@FileStates = lstat(File);

该函数与stat()函数类似,但是区别是:该函数把参数File看作是符号链接;

调用成功,则返回文件的属性列表;调用失败,则返回空值;

返回的属性列表的结构与stat()返回的属性列表的结构相同;

4、time()函数:

返回从1970年1月1日0时0分0秒开始到当前时间之间累计的秒数;

$CurrentTime = time();

5、gmtime()函数:

@TimeElemList = gmtime(TimeValue);

该函数把time()、stat()、以及文件测试操作符-A和-M返回的时间转换为格林威治时间,并返回一个含有时间元素的列表:@TimeElemList ;

返回的时间元素的列表@TimeElemList 中的元素顺序为:

TimeElemList[0]:秒 (0 ~ 59);

TimeElemList[1]:分(0 ~ 59);

TimeElemList[2]:时(0 ~ 23) ;

TimeElemList[3]:日(1 ~ 31);

TimeElemList[4]:月(0 ~ 11:一月 ~ 十二月);

TimeElemList[5]:年;

TimeElemList[6]:星期;

TimeElemList[7]:

TimeElemList[8]:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: