Tạo lệnh ls sắp xếp theo loại tệp (ví dụ: thư mục và phần mở rộng tệp)


15

Làm cách nào để lssắp xếp theo loại tệp (ví dụ: thư mục trước rồi đến phần mở rộng tệp)? Các câu trả lời được đề xuất trong (Siêu người dùng) Thực hiện ls sắp xếp theo loại tệp dẫn đến lỗi tùy chọn không xác định từ ls.


2
Sửa chữa nhỏ về tiêu đề của bạn: ls không phải là một lệnh bash; đó là một thực thi độc lập nằm ở /bin/ls.
tạm biệt

Câu trả lời:


21

Như bạn đã tìm ra, phiên bản lslệnh Darwin không hỗ trợ -X | --sort=extensiontùy chọn. Tùy chọn này là duy nhất cho phiên bản GNU của ls.

Bạn có thể có được phiên bản GNU lscho hệ thống của bạn. Cách dễ nhất để làm điều này là thông qua trình quản lý gói và hệ thống porting của Homebrew . Với Homebrew được cài đặt, hãy làm:

brew install coreutils

để thêm gói GNU Core Utility vào hệ thống của bạn. Tất cả các tiện ích sẽ được thêm tiền tố gđể chúng không va chạm với các tiện ích mặc định của Darwin mà OS X mang theo.

Với các tiện ích GNU Core được cài đặt, bây giờ bạn có thể thực hiện:

gls -X

Và bạn sẽ thấy đầu ra được sắp xếp như bạn mong muốn.

Nếu bạn muốn sử dụng GNU Core Utils thay vì các tiện ích đi kèm với OS X, bạn có thể đặt dòng sau vào ~/.bashrctệp của mình :

source /usr/local/Cellar/coreutils/8.14/aliases

Và bạn sẽ không cần phải sử dụng gtiền tố trên các lệnh nữa. Tôi sẽ nói rằng đây không phải là một điều hoàn toàn an toàn vì một số tiện ích GNU khác với các công cụ bash tích hợp và công cụ Darwin trong cách chúng hoạt động, đủ để chúng có thể làm hỏng những thứ khác trong phiên shell của bạn. Vì vậy, làm điều này một cách thận trọng.


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.