Đó là tất cả mọi thứ đó là _not_ một symlink


12

lscách nào để hiển thị các điều kiện phủ định như "tất cả các tệp không phải là liên kết tượng trưng" không? Tôi sử dụng cái sau rất nhiều trong một thư mục dự án nhưng những phủ định khác cũng sẽ hữu ích.

Hiện tại, nghiên cứu của tôi chỉ dẫn đến việc tạo ra một bí danh cho một cái gì đó "như":

find . -maxdepth 1 ! -type l | sort # (...)

nhưng rõ ràng theo cách này tôi không có được màu sắc ls, định dạng cột, v.v ...

Đôi khi tôi đang dùng Bash v3 trên OS X 10.8.2 và Bash v4 trên Pangolin.

Câu trả lời:


14

Thay vì đường ống đến sort, sử dụng ls.

find . -maxdepth 1 \! -type l -exec ls -d {} +

find . -maxdepth 1 \! -type l | xargs ls -d

Nếu bạn đã sử dụng trình bao zsh, bạn có thể sử dụng các tiện ích mở rộng toàn cầu không di động của họ:

ls -d *(^@)

Thx 4 câu trả lời! Tại sao bạn trốn thoát!? Nó dường như đang làm việc ngay cả khi không có .. Điều gì tôi đang mạo hiểm bằng cách không thoát khỏi nó? Thú vị như thế nào bạn sử dụng một trận chung kết +và không \;, xin vui lòng giải thích?
Robottinosino

2
@Robottinosino Làm +cho nó gửi tất cả đến một lslệnh duy nhất thay vì chạy riêng cho từng tệp (theo cách này ls có thể thực hiện các cột và sắp xếp). Tôi đã thoát! bởi vì nó là một nhân vật đặc biệt đối với một số vỏ dù bạn dường như chấp nhận nó tốt.
Random832

Gotcha. Công cụ tuyệt vời! Bạn có đồng ý rằng nó hơi tốn công sức không, chỉ để phủ nhận một vị ngữ một cách đơn giản ls? Có thể có một cách tốt hơn?
Robottinosino

1
@Robottinosino Chỉnh sửa với một cái gì đó zsh có thể làm. Tôi không nghĩ rằng bash có thể làm điều đó mặc dù.
Random832
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.