Câu trả lời:
Theo cùng một cách mà bạn không thể chạy ls "*.txt"
trong một vỏ bình thường, bạn cũng không thể chạy nó trong một lớp con. Khi bạn đặt *.txt
dấu ngoặc kép, bạn đã thực hiện ls
tìm kiếm một tệp bằng chữ được gọi *.txt
khi thay vào đó bạn nên thực hiện việc này:
$ echo $(ls *.txt) # => file.txt otherfile.txt
Một cách tốt hơn để làm điều này là không sử dụng ls
tất cả.
$ echo *.txt # => file.txt otherfile.txt
ls
.
ls -l "*.txt"
. Hoặc ít nhất là tôi có thể. Tôi làm điều đó không thường xuyên, nhưng khi tôi làm, nó thường nói với tôi rằng nó không thể tìm thấy * .txt ...
bash
và các vỏ tương tự nhưzsh
) không giống với dấu ngoặc đơn! Ví dụ, mở rộng tham số ($foo
) được thực hiện bên trong dấu ngoặc kép, nhưng không phải dấu ngoặc đơn.