不明白,我有以下代碼:文件名擴展在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