TCL学习之文件命令(2)

来源:互联网 发布:cf刷钻刷枪软件盒子 编辑:程序博客网 时间:2024/06/05 03:38

这篇文章接上一篇文章讲一下能够提供文件信息的file命令。

1.filename提供文件信息

序号函数描述1filedirname返回路径名2file extension返回文件扩展名3file roootname返回不包括扩展名的文件名4file tail返回不包括路径名的文件名5file atime返回最后一次文件存取时间6file executable如果可执行返回17file exists如果文件存在返回18file isdirectory如果是个路径返回19file isfile如果是个文件返回110file lstat返回一个文件状态信息数组
atime:最后一次存取时间       ctime:最后文件状态改变时间  dev:设备节点  gid:文件的组id uid:用户的id
ino:节点数 mode:节点保护模式 mtime:最后数据修改时间 nlink:硬链接数 size:文件字节数 type:文件类型
注意:这个函数和file stat 不同在于当为一个符号链接时,file lstat 是得到链接的信息,而file stat是得到链接的文件信息
11file mtime返回文件最后修改时间12file owned如果用户是该文件所有者返回113file readable如果文件可读返回114file readlink返回符号链接的文件名15file size返回文件大小16file stat返回一个文件状态信息数组17file type返回文件类型:file 普通文件类型 directory 目录 characterSpecial 字符导向设备 blockSpecial 块导向设备
fifo:命名管道 link:符号链接 socket:套接字18file writable如果文件可写返回12.global命令通过匹配模式返回一个文件名列表

格式:global ?swithches? pattern? patternN?

    *switches:-nocomplain 允许返回一个空列表的时候不生成错误,如果没有这个开关,返回空列表的时候会生成错误; -- 允许在匹配模式使用横杠

    *pattern 匹配模式

     a.{a,b,...}:匹配所有的a,b等字符

     b.文件名以小数点开头则解析为小数点,其他地方就解释为通配符

     c.所有的/都必须准确匹配

     d.如果匹配模式开始是:~/则~解析为环境变量HOME

     e.如果匹配的第一个字符是~后面跟着一个登陆id,则~loginid被解析为用户目录

示例如下:

set ail1 [glob C:/Windows/system/*.dll]set ail2 [glob C:/Windows/system/*.exe]set fmt "%-30s%-16s%-8s%-7s";#格式定义puts "[format "$fmt comment" "Directory" "Name" "Innode" "Type"]"foreach name [concat $ail1 $ail2] {set dir [file dirname $name];#返回路径set filename [file tail $name];#返回文件类型file stat $name arr;#返回文件的状态信息到数组arrset type [file type $name];#返回文件类型puts -nonewline "[format $fmt $dir $filename $arr(ino) $type]"if {[string match [file type $name] "link"]} {puts "points to:[file readlink $name]";#返回符号链接的文件名}if {[string match [file type $name] "file"]} {puts "size:[file size $name] bytes"}}
运行结果如下:


以上就是关于获取文件信息的函数及示例。

0 0
原创粉丝点击