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 *.txtdấu ngoặc kép, bạn đã thực hiện lstìm kiếm một tệp bằng chữ được gọi *.txtkhi 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 lstấ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 ...
bashvà 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.