Thực hiện tìm thấy dấu gạch chéo sau thư mục?


19

Làm thế nào tôi có thể làm cho lệnh find hiển thị một dấu gạch chéo sau các thư mục? Ví dụ, tôi muốn dirhiển thị như dir/thay vì dir. Tôi đang sử dụngfind . -print

Câu trả lời:


10

Di chuyển

find . -type d -exec sh -c 'printf "%s/\n" "$0"' {} \; -or -print

Nếu bạn sẵn sàng liệt kê các thư mục và tệp riêng biệt (bạn có thể hợp nhất đầu ra bằng cách sắp xếp):

{ find . -type d -print | sed 's!$!/!'; find . \! -type d; } | sort

Với GNU find, xem câu trả lời của Shawn J. Goff .

Nếu bạn sẵn sàng mạo hiểm các ký tự không in được ngay cả khi không xuất ra thiết bị đầu cuối, hãy xem câu trả lời của ddeimeke .

Trong zsh: print -rl -- **/*(DM)( Dđể bao gồm các tệp chấm, Mđể thêm một /thư mục sau)


Lệnh đầu tiên không in dấu gạch chéo cho tôi, nhưng lệnh thứ hai thì có.
Steven

15
find . \( -type d -printf "%p/\n" , -type f -print \)

Điều này sử dụng lệnh printf để định dạng tên thư mục và in tiêu chuẩn cho phần còn lại.


Tôi tiếp tục ngạc nhiên về sự linh hoạt của tìm kiếm.
Shawn J. Goff

1
Lưu ý đó -printflà đặc trưng cho GNU find.
Gilles 'SO- ngừng trở nên xấu xa'

Câu trả lời tốt đẹp. Tôi thích cách findcác đối số vị trí cho phép nó thực hiện đầu ra nâng cao như thế này. Tuy nhiên, lưu ý rằng không có khoảng trắng xung quanh dấu phẩy, nó sẽ không hoạt động.
15:30

1
Dựa trên câu trả lời này và Gilles ', tôi đã đưa ra phiên bản đơn giản hóa sau:find . -type d -printf '%p/\n' -or -print
Teresa e Junior

8

Có lẽ

find . -print0 | xargs -0 ls -Fd

là một lựa chọn là tốt.

Từ trang người đàn ông Solaris:

-F Đánh dấu các thư mục bằng dấu gạch chéo (/), các cửa có dấu lớn hơn dấu (>), các tệp thực thi có dấu hoa thị (*), FIFO với thanh dọc (|), liên kết tượng trưng với dấu " tại "dấu (@) và AF_UNIX địa chỉ ổ cắm gia đình có dấu dấu (=). Theo các liên kết tượng trưng được đặt tên là toán hạng.


@Gilles: Cảm ơn vì "d" ;-)
ddeimeke

điều này làm tăng số lượng các tòa nhà cao tầng
Paweł Polewicz
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.