"với tên được đọc từ đầu vào tiêu chuẩn" có nghĩa là xargs
lấy dữ liệu đến từ đầu vào tiêu chuẩn của nó, tách nó ra và sử dụng nó để chạy lệnh được đưa ra trong các đối số của nó. Theo mặc định, nó phân chia trên các khoảng trống hoặc dòng mới và chạy echo
với càng nhiều đối số cùng một lúc càng tốt.
Các -0
tùy chọn trong ví dụ của bạn chỉ thị xargs
để chia đầu vào của nó trên null byte thay vì khoảng trống hoặc dòng mới. Kết hợp với find
's -print0
, điều này cho phép tên tập tin chứa khoảng trống hoặc dòng mới được xử lý đúng cách.
Các -I
tùy chọn thay đổi cách các dòng lệnh mới được xây dựng. Thay vì thêm càng nhiều đối số càng tốt tại một thời điểm, xargs
sẽ lấy một tên tại một thời điểm từ đầu vào của nó, hãy tìm mã thông báo đã cho ( {}
ở đây) và thay thế bằng tên đó.
Trong ví dụ của bạn, {}
không có trong mẫu lệnh được cung cấp cho xargs
, do đó, trong thực tế, xargs
được hướng dẫn để chạy echo
mà không có đối số, một lần cho mỗi tên tệp được cung cấp cho nó find
. Để xem điều này, hãy thả wc
:
find . -mindepth 1 -maxdepth 1 -print0 | xargs -0I{} echo
Bạn sẽ thấy một loạt các dòng trống ... So sánh điều này với
find . -mindepth 1 -maxdepth 1 -print0 | xargs -0I{} echo {}
và
find . -mindepth 1 -maxdepth 1 -print0 | xargs -0 echo
và
find . -mindepth 1 -maxdepth 1 -print0 | xargs -0
để hiểu rõ hơn