不明白,我有以下代码:文件名扩展在bash
#!/bin/sh
LOG="myfile.log"
ls -l "${LOG}_*"
find . -type f -name "${LOG}_*" -exec ls -l {} \;
产生以下输出:
$ ./test.sh
ls: cannot access myfile.log_*: No such file or directory
-rw-r--r--. 1 user user 0 Sep 26 23:03 ./myfile.log_20150926_1928
-rw-r--r--. 1 user user 0 Sep 26 23:03 ./myfile.log_20150926_1926
-rw-r--r--. 1 user user 0 Sep 26 23:03 ./myfile.log_20150926_1930
-rw-r--r--. 1 user user 0 Sep 26 23:03 ./myfile.log_20150926_1927
-rw-r--r--. 1 user user 0 Sep 26 23:03 ./myfile.log_20150926_1929
我不明白,为什么“查找”命令的工作,而不是“LS “
Cheers
真的这是一个关于ls的问题,而不是编程。 [询问Ubuntu](http://askubuntu.com/questions/25655/why-doesnt-this-wildcard-work-the-way-i-expect)对行为有很好的描述。 – TZHX
@TZHX这是一个关于bash的globbing准确规则的问题。 bash是一种编程语言,所以它属于这里。 – pmos
@TZHX还有比Ubuntu更多的东西。 FreeBSD,Solaris,HP-UX,IRIX,Cygwin,任何unixoid系统都有一个可以解决这个问题的shell。我已经编辑它不再是bash特定的。 – Jens