如何在 Go 中执行具有多个 iname 匹配器的查找命令?
How do I execute a find command with multiple iname matchers in Go?
我需要通过 Go 编程语言执行这种命令:
find /some/dir/path -type f \( -iname \*.zip -o -iname \*.tar -o -iname \*.rar \)
我发现了 exec.Command 并尝试了各种执行 find
命令的方法,
例如
exec.Command("find", dir, "-type", "f", "\( -iname \*.zip -o -iname \*.tar -o -iname \*.rar \)")
exec.Command("find", dir, "-type", "f", "-iname", "*.zip", "-o", "-iname", "*.tar", "-o", "-iname", "*.rar")
exec.Command("find", dir, "-type", "f", "\(", "-iname", "\*.zip", "-o", "-iname", "\*.tar", "-o", "-iname", "\*.rar", "\)")
以上 None 对我有用。有没有办法做到这一点,或者我只需要在 Go 中发出 3 个单独的查找命令?
exec.Command
不是 shell,因此您不需要在命令中转义特殊字符。以您希望命令处理的方式准确传递每个参数。
exec.Command("find", dir, "-type", "f", "(", "-iname", "*.zip", "-o", "-iname", "*.tar", "-o", "-iname", "*.rar", ")")
我需要通过 Go 编程语言执行这种命令:
find /some/dir/path -type f \( -iname \*.zip -o -iname \*.tar -o -iname \*.rar \)
我发现了 exec.Command 并尝试了各种执行 find
命令的方法,
例如
exec.Command("find", dir, "-type", "f", "\( -iname \*.zip -o -iname \*.tar -o -iname \*.rar \)")
exec.Command("find", dir, "-type", "f", "-iname", "*.zip", "-o", "-iname", "*.tar", "-o", "-iname", "*.rar")
exec.Command("find", dir, "-type", "f", "\(", "-iname", "\*.zip", "-o", "-iname", "\*.tar", "-o", "-iname", "\*.rar", "\)")
以上 None 对我有用。有没有办法做到这一点,或者我只需要在 Go 中发出 3 个单独的查找命令?
exec.Command
不是 shell,因此您不需要在命令中转义特殊字符。以您希望命令处理的方式准确传递每个参数。
exec.Command("find", dir, "-type", "f", "(", "-iname", "*.zip", "-o", "-iname", "*.tar", "-o", "-iname", "*.rar", ")")