gpt4 book ai didi

ruby - 执行名称中带 * 的 ls 命令

转载 作者:数据小太阳 更新时间:2023-10-29 07:47:05 25 4
gpt4 key购买 nike

我想对一个名为/var/local/tmp/foo* 的文件执行 ls 命令。我一直在尝试使用

%x[ls "#{path]"]

但这会返回:

ls: /var/local/tmp/foo*: No such file or directory

请注意 %x[ls '/var/local/tmp/foo*'] 也会返回上述错误。

如果我执行相同的命令,但如下所示:

%x[ls /var/local/tmp/foo*]

它工作正常。

我猜测将目录路径放入字符串中会导致 ls 将其视为字面上名为“/var/local/tmp/foo*”的文件。

有什么办法解决这个问题吗?我想使用一个保存这个字符串的变量,所以直接放入/var/local/tmp/foo* 不是一个选项。

最佳答案

"/path/to/*" 之类的东西被称为 glob,它们实际上是由 shell 扩展的,而不是命令如 ls。虽然您可以运行 shell 让它为您扩展 glob,但使用内置的 Dir 更容易。类。

Dir["/path/to/*.txt"]

这将返回匹配文件名的数组。

关于ruby - 执行名称中带 * 的 ls 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6917447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com