xargs không thành công với với gạch chéo ngược, dấu ngoặc kép. Nó cần phải được cái gì đó như
ls -1 |tr \\n \\0 |xargs -0 -iTHIS echo "THIS is a file."
xargs -0 tùy chọn:
-0, --null
Input items are terminated by a null character instead of by whitespace, and the quotes and backslash are
not special (every character is taken literally). Disables the end of file string, which is treated like
any other argument. Useful when input items might contain white space, quote marks, or backslashes. The
GNU find -print0 option produces input suitable for this mode.
ls -1
chấm dứt mục có ký tự xuống dòng, vì vậy tr
dịch chúng thành các ký tự null.
Phương pháp này chậm hơn khoảng 50 lần so với lặp lại thủ công với for ...
(xem Michael Aaron Safyan câu trả lời) (3,55 giây so với 0,066 giây). Nhưng đối với các lệnh nhập khác như định vị, tìm, đọc từ một tệp (tr \\n \\0 <file
) hoặc tương tự, bạn phải làm việc với xargs
như thế này.
'ls' tự động thực hiện' -1' trong một đường ống. –
@ Dennis, không giống như: 'ls | xargs -L2 echo' và 'ls -1 | xargs -L2 echo' cho hai đầu ra khác nhau. Trước đây là tất cả trên một dòng. –
@ Alex: Tôi nhận được cùng một đầu ra. –