Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
linux查找命令仅匹配精确匹配?_Linux_Find_Tcl - Fatal编程技术网

linux查找命令仅匹配精确匹配?

linux查找命令仅匹配精确匹配?,linux,find,tcl,Linux,Find,Tcl,不久前,我创建了一个TCL脚本,以使用非常特定的命名约定将自动生成的文件压缩到归档文件中。然而,我最近发现了一个bug,如果一个文件的名称包含另一个归档文件的完整字符串,它会将其标记为副本 我正在使用: set stat [ exec find -name $combo | sort -r ] set foo true foreach m $stat { if { $foo } { set foo false } else { set bar

不久前,我创建了一个TCL脚本,以使用非常特定的命名约定将自动生成的文件压缩到归档文件中。然而,我最近发现了一个bug,如果一个文件的名称包含另一个归档文件的完整字符串,它会将其标记为副本

我正在使用:

set stat [ exec find -name $combo | sort -r ]

set foo true
foreach m $stat {
    if { $foo } {
        set foo false

    } else {

        set bar [ string trimleft $m ./]
        set tmp "OLD_"
        set tmp $tmp$bar                
        exec mv $bar $tmp
    }
}
然而,我看到的问题是,如果我有两个档案:

12345_abcd_download
12345_abcd_download_again

find函数将同时返回这两个值。有没有一种方法可以让它只在字典对应的情况下返回它们?

它一定与您的$combo有关-可能它包含一个
*
。在命令行上尝试查找-名称“12345下载”-打印。这将找不到您的
12345\u xiao\u再次下载文件。我现在不觉得自己很傻。既然您的问题解决了,我建议您忘记变量foo并执行以下操作:
foreach m[lrange$stat 1 end]{
--这应该会从列表中删除第一项。很抱歉,我花了这么长时间才回复,但是谢谢你给我关于lrange的提示!我不知道这是可能的!