一:文件测试操作符
1: -r,文件or目录可读
-w,文件or目录可写
-x,文件or目录可执行
-o,文件or目录是否属于当前目录
2:-e:文件或者目录是否存在
-z:文件是否存在且size为0
-s:文件或目录是否存在,size不为空,且返回容量值
-f:是否为普通文件
-d:是否为一个目录
3:-M,-A,-C;都是返回天数
4:例子
输出:
二: stat and lstat
返回和同名linux系统类似的文件信息(访问属性,用户编号及组ID,文件或目录的链接数,时间戳)
lstat:同上,但参数必须是符号链接
三:时间戳信息
1:localtime
获得当前时间,与date效果一致
2:gtime
获得准格林威治时间
3:Time
返回一个整数,表示从1970年到现在的总秒数
4:例子
输出:
四:其他
1:chdir
改变当前工作目录;shell命令行中使用chdir,不会改变shell命令行主目录;
chdir省略参数时,会回到主目录,相当于shell里面的cd;
2: 文件名通配(过滤)
glob: 如果需要一次匹配多种模式,可以再参数中用空格隔开
<>: 同glob
3: 目录句柄
opendir:打开文件句柄
readdir:读取目录句柄的内容(读到的是目录里的文件名)
closedir:关闭目录句柄
eg:
输出:
4:删除文件unlink
用于删除文件,不能用于删除目录;返回值代表成功删除了多少文件
5:重命名文件rename
rename $file,$newfile
6: 建立与删除目录
新建目录 mkdir dir_name permission eg:mkdir sims,0755;
删除目录 rmdir dir_name
每次只能删除一个目录,对非空目录调用rmdir操作符会执行失败,如何删除非空目录呢?可以先使用unlink删除文件,再用rmdir删除该目录。eg: unlink glob "$tmp_dir/*$tmp_dir/.*"; rmdir $tmp_dir;
7: chmod修改文件权限
8:chown
同时更改拥有者与所属组,必须以数字形式的用户标识符和组标识符来指定;getpwnam和getgrnam函数可以分别将用户名和组名翻译成数字。
9:修改时间戳utime