Làm cách nào để có được danh sách thư mục linux cho các tệp bắt đầu bằng một chữ cái nhất định không chuyển sang thư mục con?


17

Giả sử bạn đang ở trong một thư mục chứa nhiều tệp và nhiều thư mục con.

Bạn muốn có một danh sách thư mục của tất cả các tệp bắt đầu bằng chữ "d". Bạn gõ

ls d*

và những gì bạn nhận lại chủ yếu là các tệp trong thư mục con (cụ thể là các tệp trong thư mục con bắt đầu bằng "d").

Làm thế nào để bạn chỉ liệt kê các tập tin và tên thư mục trong thư mục hiện tại của bạn?

Câu trả lời:


31

Ah, tôi chỉ tìm thấy nó trong lần đọc thứ 6 của trang người đàn ông. Đó là tham số "thư mục" không được đặt tên hợp lý

ls -d d* 

6
Bạn chỉ mất 29 giây để đọc lại trang người đàn ông viết câu trả lời này? Thật nhanh chóng :-)
balpha

1
Ngoài ra, ls -dd * / sẽ chỉ hiển thị các thư mục.
innaM

6
balpha - Tôi đã phát hiện ra nó trước khi gửi câu hỏi, sau đó nhận ra rằng nếu tôi mất quá nhiều thời gian để tìm ra điều này, tôi cũng có thể giúp một người tìm kiếm trong tương lai và đăng q và a ở đây.
dggoldst

3
Đủ công bằng; không có gì sai với điều đó cả.
balpha

1
Tuy nhiên, CppLearner, nó thực sự hoạt động. Thử nó.
dggoldst

10

Tôi tin rằng một giải pháp thú vị khác là,

ls | grep ^d

Cung cấp sự linh hoạt của các biểu thức thông thường.


3
Và sự phức tạp của các biểu thức thông thường! ;-)
Chris Nava

1
Đó là một giải pháp thú vị và tôi thích ý tưởng sử dụng regex, tuy nhiên, nếu bạn thêm các tham số bổ sung vào ls thì nó sẽ bị hỏng. Ví dụ: "ls -l | grep ^ d"
dggoldst

Đúng, nhưng không phải tất cả các tham số. ls -a | grep "^ \." sẽ in tất cả các tập tin "ẩn".
Kuer

khác ls flagskhông hoạt động khi sử dụng phương pháp này. ví dụ ls -ltr | grep ^dkhông hoạt động. trong khi một gợi ý trong câu trả lời @dggoldst thì có.
hitesh israni

3

tìm thấy . -maxdepth 1 -name d * -type f

Được rồi, sử dụng find ở đây là một chút quá mức cần thiết. Chỉ là một chút thôi.


1
Nhưng nó đã giúp tôi liệt kê tất cả các thư mục trực tiếp của một người dùng cụ thể : find /home/ -maxdepth 1 -type d -user www-data. Cảm ơn và +1
Cyril N.

1

ls -ld: Nó sẽ đưa ra danh sách các thư mục, mà không giảm dần vào các thư mục con.

Thí dụ:

ls -ld Cust*
Lệnh này sẽ cung cấp một danh sách các tập tin và thư mục bắt đầu bằng Cust.


1
Điều này về cơ bản giống như câu trả lời năm tuổi được chấp nhận.
Scott
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.