删除tcl中的文件时文件名太长错误

时间:2018-03-25 12:26:41

标签: linux tcl delete-file

我正在尝试删除文件。来自tcl脚本的vcd扩展。但我得文件名太长错误。我试过了puts [file delete [glob *.vcd]]。这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:5)

问题在于

file delete [glob *.vcd]

不会评估你的想法。 glob太晚了,整个结果(所有文件在一起)被认为是一个文件。如果您有大量文件,则会导致该错误。

今天我想你可以使用:

file delete {*}[glob *.vcd]

立即扩展。我以前用eval file delete ...执行此操作,如果它不起作用(可能是旧版本的TCL)。此外,此处puts无效,file delete无法返回任何内容。

评论中有一些讨论是否

eval file delete [glob stuff*]

对于名为"rm -rf ~;"的文件(是的,合法的)等奇怪的东西是安全的。答案是肯定的,像;这样的奇怪字符在从glob返回时被转义并被传递,因此对于像这样的奇怪注入,存在 no 小(从不说永不)担心。

相关问题