如何在搜索所有文件夹(而不仅仅是当前目录)后删除TCL中的特定文本文件(基于名称)?

如何在搜索所有文件夹(而不仅仅是当前目录)后删除TCL中的特定文本文件(基于名称)?,tcl,Tcl,如何在整个目录中搜索特定文件名,然后在TCL中删除它?简单的方法是使用tcllib中的包,它可以安全地在目录树中搜索匹配的文件。然后可以使用这些文件名调用 例如: #!/usr/bin/env tclsh package require fileutil::traverse # Look for all foo.txt files regardless of directory. # Use this to get the OS-specific path delimiter instead

如何在整个目录中搜索特定文件名,然后在TCL中删除它?

简单的方法是使用tcllib中的包,它可以安全地在目录树中搜索匹配的文件。然后可以使用这些文件名调用

例如:

#!/usr/bin/env tclsh
package require fileutil::traverse

# Look for all foo.txt files regardless of directory.
# Use this to get the OS-specific path delimiter instead of a hardcoded / or \\
set pattern [file join * foo.txt]
fileutil::traverse findFoo . -filter [list string match $pattern]
# I suggest a dry run first to make sure your filter is returning just the
# appropriate filename(s).
puts [findFoo files]
# When satisfied, delete for real.
# file delete [findFoo files]

也许这是最简单的方法,尽管它不是便携式的:

puts [exec find . -name $filenameToDelete -print]
如果找到正确的文件,您可以这样做

exec find . -name $filenameToDelete -delete