目录
file命令描述:
在Tcl脚本中,file
命令用于处理文件系统操作。以下是所有file
命令及其说明:
-
file atime name
- 获取文件
name
的最后访问时间。
- 获取文件
-
file attributes name ?options?
- 获取或设置文件
name
的属性。options
可以是-readonly
等。
- 获取或设置文件
-
file channels
- 返回当前打开的所有文件通道的列表。
-
file copy ?-force? ?-link? source ?target?
- 复制文件或目录。如果使用
-force
,目标存在时将被覆盖。如果使用-link
,创建硬链接。
- 复制文件或目录。如果使用
-
file delete ?-force? name
- 删除文件或目录。如果使用
-force
,将强制删除。
- 删除文件或目录。如果使用
-
file dirname name
- 返回文件
name
的目录部分。
- 返回文件
-
file executable name
- 检查文件
name
是否可执行。
- 检查文件
-
file exists name
- 检查文件或目录
name
是否存在。
- 检查文件或目录
-
file extension name
- 返回文件
name
的扩展名部分。
- 返回文件
-
file isdirectory name
- 检查
name
是否为目录。
- 检查
-
file isfile name
- 检查
name
是否为文件。
- 检查
-
file join name ?name ...?
- 将多个文件名组合成一个路径。
-
file lstat name varName
- 获取符号链接
name
的信息并存储在变量varName
中。
- 获取符号链接
-
file mkdir name
- 创建目录
name
。
- 创建目录
-
file mtime name ?time?
- 获取或设置文件
name
的最后修改时间。time
是可选的。
- 获取或设置文件
-
file nativename name
- 返回文件
name
的本地表示形式。
- 返回文件
-
file normalize name
- 返回文件
name
的规范化路径。
- 返回文件
-
file owned name
- 检查当前用户是否拥有文件
name
。
- 检查当前用户是否拥有文件
-
file pathtype name
- 返回路径
name
的类型(absolute
、relative
、volume-relative
)。
- 返回路径
-
file readlink name
- 返回符号链接
name
指向的文件或目录。
- 返回符号链接
-
file rename ?-force? source target
- 重命名文件或目录。如果使用
-force
,目标存在时将被覆盖。
- 重命名文件或目录。如果使用
-
file rootname name
- 返回文件
name
的根名部分(去掉扩展名)。
- 返回文件
-
file separator ?name?
- 返回当前平台的路径分隔符。如果提供
name
,返回其路径分隔符。
- 返回当前平台的路径分隔符。如果提供
-
file size name
- 返回文件
name
的大小(以字节为单位)。
- 返回文件
-
file split name
- 将路径
name
分割成各个组成部分的列表。
- 将路径
-
file stat name varName
- 获取文件
name
的信息并存储在变量varName
中。
- 获取文件
-
file system ?name?
- 返回文件系统类型。如果提供
name
,返回其文件系统类型。
- 返回文件系统类型。如果提供
-
file tail name
- 返回文件
name
的尾部部分(去掉目录路径)。
- 返回文件
-
file type name
- 返回文件
name
的类型(file
、directory
、link
、fifo
、socket
、characterSpecial
、blockSpecial
)。
- 返回文件
这些命令覆盖了从文件属性获取、修改、复制、删除、路径处理等广泛的文件操作需求。
file命令举例:
这段代码涵盖了所有 file
命令的示例:
# 1. 获取文件的最后访问时间
set atime [file atime /path/to/file.txt]
puts "Last access time: $atime"
# 2. 获取或设置文件属性
# 获取文件属性
set attrs [file attributes /path/to/file.txt]
puts $attrs
# 设置文件为只读
file attributes /path/to/file.txt -readonly true
# 3. 返回当前打开的所有文件通道的列表
set channels [file channels]
puts "Open channels: $channels"
# 4. 复制文件或目录
# 复制文件
file copy /path/to/source.txt /path/to/destination.txt
# 强制复制文件(覆盖目标文件)
file copy -force /path/to/source.txt /path/to/destination.txt
# 创建硬链接
file copy -link /path/to/source.txt /path/to/link.txt
# 5. 删除文件或目录
# 删除文件
file delete /path/to/file.txt
# 强制删除目录及其内容
file delete -force /path/to/directory
# 6. 返回文件的目录部分
set dir [file dirname /path/to/file.txt]
puts "Directory: $dir"
# 7. 检查文件是否可执行
if {[file executable /path/to/file.sh]} {
puts "File is executable"
} else {
puts "File is not executable"
}
# 8. 检查文件或目录是否存在
if {[file exists /path/to/file.txt]} {
puts "File exists"
} else {
puts "File does not exist"
}
# 9. 返回文件的扩展名部分
set ext [file extension /path/to/file.txt]
puts "Extension: $ext"
# 10. 检查是否为目录
if {[file isdirectory /path/to/directory]} {
puts "It is a directory"
} else {
puts "It is not a directory"
}
# 11. 检查是否为文件
if {[file isfile /path/to/file.txt]} {
puts "It is a file"
} else {
puts "It is not a file"
}
# 12. 将多个文件名组合成一个路径
set path [file join /path/to directory file.txt]
puts "Path: $path"
# 13. 获取符号链接的信息
file lstat /path/to/symlink info
puts "Symlink info: $info"
# 14. 创建目录
file mkdir /path/to/newdir
puts "Directory created"
# 15. 获取或设置文件的最后修改时间
# 获取最后修改时间
set mtime [file mtime /path/to/file.txt]
puts "Last modification time: $mtime"
# 设置最后修改时间
file mtime /path/to/file.txt 1625580000
# 16. 返回文件的本地表示形式
set native [file nativename /path/to/file.txt]
puts "Native name: $native"
# 17. 返回文件的规范化路径
set norm [file normalize /path/to/../to/file.txt]
puts "Normalized path: $norm"
# 18. 检查当前用户是否拥有文件
if {[file owned /path/to/file.txt]} {
puts "File is owned by the current user"
} else {
puts "File is not owned by the current user"
}
# 19. 返回路径的类型
set type [file pathtype /path/to/file.txt]
puts "Path type: $type"
# 20. 返回符号链接指向的文件或目录
set target [file readlink /path/to/symlink]
puts "Symlink points to: $target"
# 21. 重命名文件或目录
# 重命名文件
file rename /path/to/oldname.txt /path/to/newname.txt
# 强制重命名文件(覆盖目标文件)
file rename -force /path/to/oldname.txt /path/to/newname.txt
# 22. 返回文件的根名部分(去掉扩展名)
set root [file rootname /path/to/file.txt]
puts "Root name: $root"
# 23. 返回当前平台的路径分隔符
set sep [file separator]
puts "Path separator: $sep"
# 24. 返回文件的大小(以字节为单位)
set size [file size /path/to/file.txt]
puts "File size: $size bytes"
# 25. 将路径分割成各个组成部分的列表
set parts [file split /path/to/file.txt]
puts "Path parts: $parts"
# 26. 获取文件的信息
file stat /path/to/file.txt info
puts "File info: $info"
# 27. 返回文件系统类型
set fstype [file system /path/to/file.txt]
puts "File system type: $fstype"
# 28. 返回文件的尾部部分(去掉目录路径)
set tail [file tail /path/to/file.txt]
puts "Tail: $tail"
# 29. 返回文件的类型
set type [file type /path/to/file.txt]
puts "File type: $type"
标签:文件,脚本语言,puts,tcl,file,path,txt,name
From: https://blog.csdn.net/hzmscut/article/details/139179251