"với tên được đọc từ đầu vào tiêu chuẩn" có nghĩa là xargslấ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 echovới càng nhiều đối số cùng một lúc càng tốt.
Các -0tù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 -Itù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, xargssẽ 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 echomà 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