首页 > 其他分享 >tcl脚本语言之file的常见用法

tcl脚本语言之file的常见用法

时间:2024-05-26 21:02:42浏览次数:16  
标签:文件 脚本语言 puts tcl file path txt name

目录

file命令描述:

file命令举例:


file命令描述:

在Tcl脚本中,file命令用于处理文件系统操作。以下是所有file命令及其说明:

  1. file atime name

    • 获取文件name的最后访问时间。
  2. file attributes name ?options?

    • 获取或设置文件name的属性。options可以是-readonly等。
  3. file channels

    • 返回当前打开的所有文件通道的列表。
  4. file copy ?-force? ?-link? source ?target?

    • 复制文件或目录。如果使用-force,目标存在时将被覆盖。如果使用-link,创建硬链接。
  5. file delete ?-force? name

    • 删除文件或目录。如果使用-force,将强制删除。
  6. file dirname name

    • 返回文件name的目录部分。
  7. file executable name

    • 检查文件name是否可执行。
  8. file exists name

    • 检查文件或目录name是否存在。
  9. file extension name

    • 返回文件name的扩展名部分。
  10. file isdirectory name

    • 检查name是否为目录。
  11. file isfile name

    • 检查name是否为文件。
  12. file join name ?name ...?

    • 将多个文件名组合成一个路径。
  13. file lstat name varName

    • 获取符号链接name的信息并存储在变量varName中。
  14. file mkdir name

    • 创建目录name
  15. file mtime name ?time?

    • 获取或设置文件name的最后修改时间。time是可选的。
  16. file nativename name

    • 返回文件name的本地表示形式。
  17. file normalize name

    • 返回文件name的规范化路径。
  18. file owned name

    • 检查当前用户是否拥有文件name
  19. file pathtype name

    • 返回路径name的类型(absoluterelativevolume-relative)。
  20. file readlink name

    • 返回符号链接name指向的文件或目录。
  21. file rename ?-force? source target

    • 重命名文件或目录。如果使用-force,目标存在时将被覆盖。
  22. file rootname name

    • 返回文件name的根名部分(去掉扩展名)。
  23. file separator ?name?

    • 返回当前平台的路径分隔符。如果提供name,返回其路径分隔符。
  24. file size name

    • 返回文件name的大小(以字节为单位)。
  25. file split name

    • 将路径name分割成各个组成部分的列表。
  26. file stat name varName

    • 获取文件name的信息并存储在变量varName中。
  27. file system ?name?

    • 返回文件系统类型。如果提供name,返回其文件系统类型。
  28. file tail name

    • 返回文件name的尾部部分(去掉目录路径)。
  29. file type name

    • 返回文件name的类型(filedirectorylinkfifosocketcharacterSpecialblockSpecial)。

这些命令覆盖了从文件属性获取、修改、复制、删除、路径处理等广泛的文件操作需求。

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

相关文章

  • ELK+kafka+filebeat企业内部日志分析系统
    1、组件介绍1、Elasticsearch:  是一个基于Lucene的搜索服务器。提供搜集、分析、存储数据三大功能。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTfulweb接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计......
  • U-Boot Makefile分析
    当我们拿到开发板以后,是有三种uboot的,这三种uboot的区别如表所示:U-Boot初次编译首先在Ubuntu中安装ncurses库,否则编译会报错:sudoapt-getinstalllibncurses5-dev将正点原子提供的uboot-imx-2016.03-2.1.0-ge468cdc-v1.5.tar.bz2拷贝到自己建的文件夹下,并进行解压......
  • Java读取word文件 No valid entries or contents found, this is not a valid OOXML (
    有个项目涉及到了操作word文档,当我把一份未加密word文档放在项目resources目录下进行临时开发,读取这个word时报错:Causedby:org.apache.poi.openxml4j.exceptions.NotOfficeXmlFileException:Novalidentriesorcontentsfound,thisisnotavalidOOXML(OfficeOpenXML......
  • Rename – A Command Line Tool For Renaming Multiple Files in Linux
    from: https://www.tecmint.com/rename-multiple-files-in-linux/Weoftenusethe mvcommand torenameasinglefilein Linux.However,renamingmultipleorgroupsoffilesquicklymakesitaverydifficulttaskinaterminal.Linux comeswithaverypowerf......
  • MarkdownFile新建添加到鼠标右键
    第一种方法:手动配置WIN+R进入运行窗口输入:regedit进入注册表1、找到【计算机\HKEY_CLASSES_ROOT\.md】这个目录。2、然后在此目录下修改“默认”,双击或右键修改,添加值:Typora.md。3、新建字符串值,修改名字ContentType,值为text/markdown。4、再次新建字符串值,修改名字......
  • PowerShell 命令 Get-NetConnectionProfile 来查看当前网络连接的类型。命令会列出当
    PowerShell命令Get-NetConnectionProfile来查看当前网络连接的类型。在PowerShell中执行以下命令:powershellCopyCodeGet-NetConnectionProfile这个命令会列出当前计算机上所有网络连接的详细信息,包括连接名称、接入类型(例如“域网络”、“专用网络”、“公用网络”)等。在......
  • 红队攻防渗透技术实战流程:云安全之云原生安全:K8s安全etcd Dashboard Configfile漏洞
    红队云攻防实战1.云原生安全-K8s安全-Kubelet漏洞利用1.1K8s安全-Master节点漏洞利用-2379端口etcd未授权访问1.1.1K8s安全-Master节点漏洞利用-etcd未授权的几种利用方式1.1.2K8s安全-Master节点漏洞利用-etcd未授权-V2版本利用1.1.3K8s安全-Master节点漏......
  • makefile 进行宏定义的便捷之处
    1.Makefile中:MYVERSION=1.0.00000001CFLAGS+=-DMYVERSION=\"$(MYVERSION )\" all:mainapp mainapp:mainapp.cgcc$(CFLAGS)-omainappmainapp.c  2.c文件中//mainapp.c#include<stdio.h> #ifdefMYVERSION#define  STR(x)  ......
  • How to compile amstex file
    ProblemIdownloadedatexfilefromarxiv,itstartswith\inputamstex\documentstyle{amsppt}\magnification=1200\hsize=13.8cm\catcode`\@=11\def\NoLogo{\let\logo@\empty}\catcode`\@=\active\NoLogo\def\vgk{\text{\bfVG}_k}\def\......
  • VBS(Visual Basic Script)是一种脚本语言,可以使用ADO(ActiveX Data Objects)来连接和操作A
    在PowerShell中,可以使用COM对象创建ADO连接并执行SQL查询来连接和操作Access数据库。以下是一个示例代码:powershellCopyCode#CreateaconnectiontoAccessdatabaseusingADO$conn=New-Object-ComObjectADODB.Connection$conn.Provider="Microsoft.ACE.OLEDB.12.0"......