Đôi khi tôi thấy lệnh sau:
find . -name * -exec ls -a {} \;
Tôi đã được yêu cầu thực hiện điều này.
Không gì {} \;
có nghĩa là ở đây?
-name *
tồi tệ hơn dự phòng. Vì không *
được trích dẫn, trình bao mở rộng nó vào danh sách tên tệp trong thư mục hiện tại, với các khoảng trắng được xử lý không chính xác, dẫn đến kết quả không mong muốn hoặc thông báo lỗi. Là một điểm bổ sung, find
có nhiều chức năng, một trong số đó là liệt kê các tệp; Điều này tránh phải sử dụng -exec
. Ví dụ, bạn có thể sử dụng find . -print
hoặc find . -ls
. Cuối cùng, có hai cách để thoát dấu chấm phẩy: như bạn đã làm với dấu gạch chéo ngược \;
hoặc bằng cách trích dẫn : ';'
. Sử dụng bất cứ điều gì bạn cảm thấy thoải mái hơn.
-name *
là dư thừa.