Làm thế nào tôi có thể sắp xếp ls theo chủ sở hữu và nhóm?


9

Làm thế nào tôi có thể liệt kê các thư mục với ls và sắp xếp chúng theo chủ sở hữu và nhóm của họ?

Câu trả lời:


8

Thử cái này:

ls -l | awk '{print $3, $4, $8}' | sort

Nó sẽ in tên người dùng, tên nhóm và tên tệp, miễn là tên tệp không chứa dấu cách. Ngoài ra, bạn có thể gõ:

ls -l | awk '{print $3, $4, $0}' | sort

Điều này sẽ in tên người dùng, tên nhóm và ls -lđầu ra đầy đủ , được sắp xếp theo tên người dùng trước, sau đó là tên nhóm, sau đó bất cứ điều gì ls -lin ra trước.

Lưu ý rằng tùy thuộc vào phân phối của bạn, số cột thực tế có thể khác nhau. Tôi đã thử của tôi trong SUSE và coreutils phiên bản 5.2.1.

Có thể có những giải pháp tốt hơn, công phu hơn, nhưng đây là giải pháp đơn giản nhất và sẽ hoạt động hầu hết thời gian.


1
s / số hàng / số cột /
Tạm dừng cho đến khi có thông báo mới.

7

Như Petersohn đã nói, một cái gì đó tương tự như:

  • ls -l | awk '{print $3, $4, $8, $0}' | sort | column -t
    thêm $8column -tcho bản in đẹp

Hoặc thậm chí tốt hơn:

  • ls -l | sort -k 3 - sắp xếp theo chủ sở hữu và theo mặc định sắp xếp trường tiếp theo (nhóm) và trên
  • ls -l | sort -k 4,4 -k 3 - sắp xếp theo nhóm và sau đó theo chủ sở hữu
  • ls -l | sort -k 3,3 -k 8 - sắp xếp theo chủ sở hữu và sau đó theo tên tệp

Lưu ý: dấu phẩy là trường terminator nên 3,3bắt đầu và kết thúc ở trường 3 3,5sắp xếp từ trường 3 đến 5.


Để sắp xếp theo nhóm và sau đó theo chủ sở hữu, tôi phải thêm -b để bỏ qua các khoảng trống hàng đầu, nếu không, danh sách sẽ được sắp xếp theo độ dài chuỗi của tên chủ sở hữu.
Stefan Schmidt
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.