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的扩展.

时间: 2024-08-03 05:30:21

Perl学习笔记(九)--文件(四)的相关文章

python学习笔记九——文件与目录

1.python进行文件读写的函数是open或file类 mode:r  只读 r+   读写 w  写入,先删除原文件,再重新写入,如果文件没有则创建 w+  读写,先删除原文件,再重新写入,如果文件没有则创建(可写入和输出) a  写入,在文件末尾追加新的内容,文件不存在则创建 a+  读写,在文件末尾追加新的内容,文件不存在则创建 b  打开二进制文件,可与r,w,a,+结合使用 U  支持所有的换行符号,"\r","\n","\r\n"

Perl 学习笔记-文件测试

1.文件测试操作符 针对文件和目录的测试操作符: -r/-w/-x/-o: 文件或目录, 对有效的(负责运行这个程序的)用户或组来说是可读/写/执行/拥有 的; 这些测试位会查看文件的权限位, 以此判断哪些操作是允许的, 如果系统使用访问控制列表(ACL), 那么测试就按列表进行判断, 但是只是测试结果只是操作系统的看法, 但是受实际情况限制, 运行的事未必可行, 如空文件运行运行, 但是并没有什么意义. -R/-W/-X/-O: 文件或目录, 对实际的用户或组来说是可读/写/执行/拥有 的;

Python学习笔记九-文件读写

1,读取文件: f=open('目录','读写模式',encoding='gbk,error='egiong') 后三项可以不写但是默认是' r'读模式:open函数打开的文件对象会自动加上read()方法: f.read()读出刚刚打开的文件:最后一定要记得close()函数:否则会出现不可估计的后果. 读写模式:r只读,r+读写,w新建(会覆盖原有文件),a追加,b二进制文件.常用模式 .如:'rb','wb','r+b'等等 readline()函数,会依次读取多有文件内容,按行返回lis

APUE学习笔记:第四章 文件和目录

4.1 引言 本章将描述文件的特征和文件的性质 4.2 stat.fstat和lstat函数 #include<sys/stat.h> int stat(const char *restrict pathname,struct stat *restrict buf); int fstat(int filedes,struct stat *buf) int lstat(const char *restrict pathname,struct stat *restrict buf); 三个函数的返

虚拟机VMWare学习笔记九 - 物理机上的文件挂载到虚拟机上

物理机上的文件夹或盘符直接挂载到虚拟机上使用. VM -- Settings Options -- Shared Folders -- 勾选Always enabled , 勾选Map as a network drive in Windows guests 在点击下面的添加来添加共享的文件夹 选择路径 可以看到虚拟机中的共享文件夹已经出现在Windows 中了 虚拟机VMWare学习笔记九 - 物理机上的文件挂载到虚拟机上

马哥学习笔记二十四——分布式复制快设备drbd

DRBD: 主从 primary: 可执行读.写操作 secondary: 文件系统不能挂载 DRBD: dual primay, 双主(基于集群文件系统的高可用集群) 磁盘调度器:合并读请求,合并写请求: Procotol:drbd数据同步协议 A: Async, 异步  数据发送到本机tcp/ip协议栈 B:semi sync, 半同步  数据发送到对方tcp/ip协议 C:sync, 同步  数据到达对方存储设备 DRBD Source: DRBD资源 资源名称:可以是除了空白字符外的任意

义隆单片机学习笔记之(四) 编程及烧录

工具说明: 1.UIDE,编程环境 2.UWriter:烧录软件 下载地址: (见官网) 一 UIDE  1.1 创建工程: 1.2 选择型号: 1.3 编程及编译 二 UWriter 2.1 安装 (Serial number在购买烧录器的时候,从代理经销商处获得!) 2.2 选择目标芯片  2.3 配置选择 (注:由于是OTP,很多功能都是在配置的时候指定,所以这里非常重要.晶振.时钟的选择,延时程序要与之对应: 是否需要保护等,根据自己的需要而定) 编译之后生成的.map文件,详细的描述了

Android学习笔记(十四)——在运行时添加碎片(附源码)

在运行时添加碎片 点击获取源码 将UI分割为多个可配置的部分是碎片的优势之一,但其真正强大之处在于可在运行时动态地把它们添加到活动中. 1.使用上一篇创建的Fragments项目,在main.xml文件中注释掉两个<fragment>元素: 2.在FragmentActivity.java中添加下面的代码: FragmentManager fragmentManager = getSupportFragmentManager();//向活动添加碎片 FragmentTransaction fr

APUE 学习笔记(九) 高级I/O

1. 非阻塞I/O 低速系统调用时可能会使进程永远阻塞的一类系统调用,包括以下调用: (1)某些文件类型你(网络socket套接字.终端设备.管道)暂无可使用数据,则读操作可能会使调用者永远阻塞 (2)如果数据不能立即被(1)中文件类型接受,则写操作会使调用者永远阻塞 (3)某些进程间通信函数 非阻塞I/O使我们可以调用open.read.write这样的I/O操作,并使这些操作不会永远阻塞,如果这种操作不能完成,则调用立即出错返回 对于一个给定的文件有两种方法对其指定非阻塞I/O: (1)调用

UI学习笔记---第十四天数据持久化

一.沙盒机制 每个应用程序位于文件系统的严格限制部分 每个应用程序只能在为该程序创建的文件系统中读取文件 每个应用程序在iOS系统内斗放在了统一的文件夹目录下 沙盘路径的位置 1. 通过Finder查找程序沙盘相对路径 ~/Library/Application Support/iPhone Simulator 2. 通过代码查找程序沙盘相对路径 NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory directory,NSSearc