Câu trả lời:
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)
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.
-printf
là đặc trưng cho GNU find.
find
cá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.
find . -type d -printf '%p/\n' -or -print
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.