簡體   English   中英

bash無法理解文件名擴展

[英]filename expansion not understood in 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”

干杯

Shell僅在不加引號的情況下才擴展星號。

Find在-name本身中擴展了通配符,通常必須引用它們以防止shell擴展它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM