我想对名为/ var/local/tmp/foo*的文件执行ls命令.我一直在尝试使用
%x[ls "#{path]"]
Run Code Online (Sandbox Code Playgroud)
但是这会返回:
ls: /var/local/tmp/foo*: No such file or directory
Run Code Online (Sandbox Code Playgroud)
请注意,%x [ls'/ var/local/tmp/foo*']也会返回错误.
如果我执行相同的命令,但如下所示:
%x[ls /var/local/tmp/foo*]
Run Code Online (Sandbox Code Playgroud)
它工作正常.
我猜测将目录路径放入字符串会导致ls将其视为名为"/ var/local/tmp/foo*"的文件.
任何想法如何解决这个问题?我想使用一个包含此字符串的变量,因此直接放入/ var/local/tmp/foo*不是一个选项.
类似的东西"/path/to/*"叫做glob,它们实际上是由shell扩展的,而不是像命令那样ls.虽然你可以运行shell来让它为你扩展glob,但是使用内置Dir类更容易.
Dir["/path/to/*.txt"]
Run Code Online (Sandbox Code Playgroud)
这将返回匹配文件名的数组.
| 归档时间: |
|
| 查看次数: |
2504 次 |
| 最近记录: |