bash脚本是我的脚本的例子:使用通配符
#!/bin/bash
cd /upper/folder.test*/subfolder
ls
的folder.test文件夹5事实上名为类似“folder.test13kwekrjk1234jk3”,它是完全随机的,所以我想用通配符。 “上”文件夹在根目录中,我想要它和CD命令在脚本之外工作(并且我正在根目录中执行它,就像脚本一样)
但是,当我执行(使用。 /),它给了我:
“ - 没有这样的文件或目录] CD:/upper/folder.test*/subfolder”
是怎么回事?它在脚本之外工作,但不会在脚本内工作?我应该在剧本中以不同的方式做到这一点吗?
我不能让这个失败像你有它,但也要注意,你所拥有的脚本只会在第一次出现时才会“ls”,而不是其他时间。然而,像ls/upper/folder.test * /子文件夹这样的东西可以工作。另外,你使用的是什么操作系统或版本的bash? –
它适用于我的bash版本。你有多个目录与模式匹配吗? – Nicolas
这不是一个混淆通配符与文件名* globbing *的情况吗?像'ls/upper/folder.test */subfolder'这样的东西可以工作,因为星号的外壳扩展,但在'cd'命令中扩展是没有意义的。你只能'cd'到*一个*文件夹 – pavium