Sử dụng cái này: (ls có thể sắp xếp, hoạt động với tên tệp có dấu cách hoặc ký tự bất thường)
find . -name *foo* -print0 | xargs -0 ls -lah
"-print0" có nghĩa là các tên tệp như file foo 1
sẽ nhận được đầu ra từ find
sau bởi null. Đối số "-0" cho xargs bảo nó mong đợi loại đầu vào này, vì vậy tên tệp có khoảng trắng được dẫn đúng vào ls
lệnh.
Việc xargs
xây dựng theo một số cách tốt hơn là find etc -exec ls {} \;
vì tất cả các tên tệp được gửi đến ls
cùng một lúc, vì vậy nếu bạn muốn sắp xếp tất cả chúng theo dấu thời gian (sử dụng ls
), một cái gì đó như thế này hoạt động:
find . -iname *pdf -print0 | xargs -0 ls -ltr
Trên hệ thống NetBSD, "-printx" cũng là một tùy chọn (đây có vẻ là một đối số hữu ích với tôi, nhưng dù sao đi nữa, chúng tôi có xargs -0 và không sao):
find . -name *foo* -printx | xargs ls -lah
(không dành cho Ubuntu)