在 tcl 中删除文件时文件名太长错误
File name too long error while deleting files in tcl
我正在尝试删除带有 .来自 tcl 脚本的 vcd 扩展名。但是我收到文件名太长的错误。我试过了puts [file delete [glob *.vcd]]
。正确的做法是什么?
问题在于
file delete [glob *.vcd]
没有按照您的想法进行评估。 glob 扩展得太晚了,整个结果(所有文件一起)被视为一个文件。如果您有大量文件,那将导致该错误。
今天我想你可以使用:
file delete {*}[glob *.vcd]
立即扩展。如果这不起作用(可能是旧版本的 TCL),我曾经用 eval file delete ...
来做到这一点。另外,puts
在这里没用,file delete
.
没有返回任何内容
评论中有些讨论
eval file delete [glob stuff*]
对于奇怪的东西是安全的,比如名为 "rm -rf ~;"
的文件(是的,合法的)。答案是肯定的,像 ;
这样的奇怪字符在从 glob
返回并通过时会被转义,所以 no 很少(永远不会说永远)担心奇怪的注入就这样。
我正在尝试删除带有 .来自 tcl 脚本的 vcd 扩展名。但是我收到文件名太长的错误。我试过了puts [file delete [glob *.vcd]]
。正确的做法是什么?
问题在于
file delete [glob *.vcd]
没有按照您的想法进行评估。 glob 扩展得太晚了,整个结果(所有文件一起)被视为一个文件。如果您有大量文件,那将导致该错误。
今天我想你可以使用:
file delete {*}[glob *.vcd]
立即扩展。如果这不起作用(可能是旧版本的 TCL),我曾经用 eval file delete ...
来做到这一点。另外,puts
在这里没用,file delete
.
评论中有些讨论
eval file delete [glob stuff*]
对于奇怪的东西是安全的,比如名为 "rm -rf ~;"
的文件(是的,合法的)。答案是肯定的,像 ;
这样的奇怪字符在从 glob
返回并通过时会被转义,所以 no 很少(永远不会说永远)担心奇怪的注入就这样。