Perl学习笔记(九)--文件(四)

十一、文件测试

  -op expr if(-e “filea”){print STDERR(“file1/n”):} 文件是否存在.

  -b是否为块设备  -c是否为字符设备
  -d是否为目录    -e文件是否存在
  -f是否为普通文件 -g是否设置了setgid位
  -k是否设置了sticky位 -l是否为符号连接
  -o是否拥有该文件  -p是否为管道
  -r是否可读     -s是否非空
  -t是否表示终端  -u是否设置setuid位
  -w是否可写  -x是否可执行  -z是否为空文件
  -A距上次访问多长时间
  -B是否为二进制文件
  -C距上次访问文件的inode多长时间
  -M距上次修改多长的时间
  -O是否只为”真正的用户”所拥有
  -R是否只有”真正的用户”可读
  -S是否为socket  -T是否为文本文件
  -W是否只有”真正的用户”可写
  -X是否只有”真正的用户”可执行
  -s返回文件长度,-A-C-M返回的天数.

十二、文件状态

  stat(file):参数可为文件名,也可为文件句柄,返回文件状态的列表。

  编号  名字    unix                     windows
  0     dev     设备号                   c:=2,d:=3
  1     ino     索引节点                 总是0
  2     mode    模式                     无
  3     nlink   链接号                   0
  4     uid     文件所有者               0
  5     gid     文件组                   0
  6     rdev    特殊文件信息,设备类型    驱动器号
  7     size    文件大小                 文件大小
  8     atime   上次访问时间             上次访问时间
  9     mtime   上次修改时间             上次修改时间
  10    ctime   inode修改时间            文件创建时间
  11    blksz   磁盘块大小               0
  12    Blocks  文件的块数               0

  utime(acctime,modtime,filelist):修改时间戳,修改访问时间,返回成功修改的文件数.

十三、文件操作

  Glob:
  @a=glob(“*.txt”)返回与模式匹配的所有文件目录,如果赋值给简单变量则一次返回一个文件。
  参数可以是文件名或目录.
  只能接受有限的文件数,报文件太多错误,用shell来执行。
  因为用shell来解释执行,故运行速度慢。
  另一种形式是@a=<*.txt>是古老的用法,推荐用glob.

  truncate(file,lenght):将文件的长度减少到length字节,如果文件长度已经小于length,
  则不做任何事.其中filename可以为文件名,也可以为文件变量.

  rename(old,new)成功=1 可以从一个目录移动到另一个目录,不检查new是否存在,可能破坏文件.
  -e “file2″||rename(file1,file2)  先检查再移动

十四、文件链接

  link(文件名,链接名)
  创建现有文件的链接-硬链接,file是被链接的文件,newlink是被创建的链接。
  成功返回真,失败返回假.
  当删除这两个链接中的一个时,还可以用另一个来访问该文件。

  synlink符号链接(文件名,链接名)创建现有文件的符号链接,即指向文件名,而不是指向
  文件本身,当原文件被删除(如:被unlinke函数删除),则被创建链接不可用,除非再创建
  一个与原被链接的文件同名的文件.
  Readlink(linkname)跟踪符号链接,如果linkname为符号链接文件,返回其实际指向的文件。
  否则返回空串。

  unlink(filelist)=成功删除的文件数,删除文件或$_中的文件,参数为文件名列表,返回值为
  实际删除的文件数目.
  此函数之所以叫unlink而不叫delete是因为它实际所做的是删除文件的链接。

十五、目录操作

  opendir(dirvar,dirname) 打开目录,查看某目录中文件列表时也要先打开,再操作,再关闭,
  参数为:
  dirvar:目录变量,dirname:目录名,成功返回真值,失败返回假。
  closedir(dir):关闭目录
  readdir(dir):对数组返回所有文件和目录,对简单变量每次返回一个文件或目录,不含当前路径。
  chdir(dir):改变目录,运行完返回原目录,成功为真,失败为假.
  telldir(dir):当前目录位置
  seekdir(dir,loc):到指定位置
  rewinddir(dir):目录位置指向目录第一项.
  mkdir(dirname,permission):创建目录(当前目录,访问权限)
  rmdir(dirname):只能删除空目录,成功则返回真,失败返回假.

十六、小结

  1.概念:描述符,句柄,缓冲,访问模式,权限,文件状态.
  2.文件访问:打开,关闭,读,写,随机访问
  3.文件操作:测试,改名,截取,链接.
  4.目录操作:同文件.
  5.相关技术:错误函数及变量,文件打开函数,命令行参数,glob的扩展.

原文地址:https://www.cnblogs.com/Hebe/p/4446952.html