Điểm:1

`ls` với ký tự đại diện có thư mục con

lá cờ au
Tom

Khi tôi thực hiện một lệnh là *, nó sẽ hiển thị

  1. tập tin trong thư mục hiện tại
  2. thư mục trong thư mục hiện tại
  3. các tệp và thư mục trong các thư mục trong các thư mục hiện tại.

Khi tôi sử dụng ls Tôi không muốn xem bên trong các thư mục trong thư mục hiện tại. Tôi hơi bối rối vì tôi đã sử dụng Ubuntu hơn 8 năm rồi, tôi chưa bao giờ thấy bất cứ điều gì như thế này trước đây.

Đây có phải là cách ls nên làm việc? Có cách nào để dừng lại 3 khỏi xảy ra?

Ví dụ, nếu tôi có tệp1.file thư mục1 thư mục2 thư mục3 textfile1.txt

Tôi muốn ls f* chỉ hiển thị

tệp1.file
thư mục1
thư mục2
thư mục3

Ubuntu 20.04 LTS

Doug Smythies avatar
lá cờ gn
`ls -l -d *` nên làm những gì bạn muốn.
sudodus avatar
lá cờ jp
+1 cho mẹo của Doug Smythies hoặc thậm chí đơn giản hơn (chỉ có tên) `ls -d *` và `ls -d f*`
Điểm:0
lá cờ id

Một cách là sử dụng tìm thấy lệnh thay vì ls. Bạn có thể dùng -độ sâu tối đa 1 để bạn không đọc vào các thư mục và chỉ sử dụng -Tên tùy chọn cho thẻ hoang dã.

Ví dụ:

tìm thấy . -maxdepth 1 -tên 'f*'

Sẽ trả lại mọi thứ trong thư mục hiện tại . bắt đầu bằng chữ thường f ngay cả tên thư mục, nhưng không hiển thị cho bạn bất kỳ nội dung nào trong (các) thư mục.

Điểm:0
lá cờ cn

Bạn đang mong đợi nó hoạt động như trong MS-DOS, tuy nhiên, đây là linux.

Các ký tự đại diện trong linux được trình bao của bạn mở rộng để khớp với tất cả các mục phù hợp với các ký tự đại diện. ls không nhìn thấy ký tự đại diện của bạn. Nó chỉ thấy một danh sách các tên tệp và thư mục khớp với ký tự đại diện. Vì vậy, nó sẽ hiển thị nội dung của tất cả các mục được liệt kê, tức là tên của tệp hoặc nội dung của thư mục. Trong MS-DOS, các ký tự đại diện sẽ gây ra thư mục tự lệnh lọc danh sách để chỉ liệt kê các tên phù hợp với ký tự đại diện.

Để lọc đầu ra của ls, ví dụ: để chỉ xem tên tệp và thư mục khớp f*, sử dụng tiếng kêu, tức là chuyển đầu ra của ls thành grep như:

là | grep ^f.*

^.* là các biểu thức chính quy. ^f có nghĩa: f nhưng chỉ ở giai đoạn đầu. .* có nghĩa . ký tự bất kỳ * bất kỳ số lần.

Tom avatar
lá cờ au
Tom
Cảm ơn bạn đã trả lời. Tôi không biết tại sao điều này không bao giờ là một vấn đề đối với tôi cho đến bây giờ.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.