Các lệnh Linux: xargs

Hướng dẫn nhanh vềxargs, được sử dụng để chuyển đầu ra của một lệnh và sử dụng nó làm đối số cho một lệnh khác

Cácxargslệnh được sử dụng trong một trình bao UNIX để chuyển đổi đầu vào từ đầu vào chuẩn thành các đối số thành một lệnh.

Nói cách khác, thông qua việc sử dụngxargsđầu ra của một lệnh được sử dụng làm đầu vào của một lệnh khác.

Đây là cú pháp bạn sẽ sử dụng:

command1 | xargs command2

Chúng tôi sử dụng một đường ống (|) để chuyển đầu ra choxargs. Điều đó sẽ đảm nhận việc chạycommand2lệnh, sử dụng đầu ra củacommand1như (các) đối số của nó.

Hãy làm một ví dụ đơn giản. Bạn muốn xóa một số tệp cụ thể khỏi một thư mục. Các tệp đó được liệt kê bên trong tệp văn bản.

Chúng tôi có 3 tệp:file1,file2,file3.

Trongtodelete.txtchúng tôi có một danh sách các tệp chúng tôi muốn xóa, trong ví dụ nàyfile1file3:

Chúng tôi sẽ chuyển đầu ra củacat todelete.txtđếnrmlệnh, thông quaxargs.

Theo cách này:

cat todelete.txt | xargs rm

Đó là kết quả, các tệp chúng tôi liệt kê hiện đã bị xóa:

Cách nó hoạt động làxargssẽ chạyrm2 lần, một lần cho mỗi dòng trả vềcat.

Đây là cách sử dụng đơn giản nhất củaxargs. Có một số tùy chọn chúng tôi có thể sử dụng.

Một trong những điều hữu ích nhất theo ý kiến của tôi, đặc biệt là khi bắt đầu họcxargs, Là-p. Sử dụng tùy chọn này sẽ làm choxargsin lời nhắc xác nhận với hành động mà nó sẽ thực hiện:

Các-ntùy chọn cho phép bạn nóixargsđể thực hiện một lần lặp lại cùng một lúc, vì vậy bạn có thể xác nhận chúng một cách riêng lẻ với-p. Đây chúng tôi kểxargsđể thực hiện một lần lặp lại cùng một lúc với-n1:

Các-Ilà một tùy chọn được sử dụng rộng rãi khác. Nó cho phép bạn lấy đầu ra vào một trình giữ chỗ và sau đó bạn có thể làm nhiều việc khác nhau.

Một trong số đó là chạy nhiều lệnh:

command1 | xargs -I % /bin/bash -c 'command2 %; command3 %'

Bạn có thể hoán đổi%biểu tượng tôi đã sử dụng ở trên với bất kỳ thứ gì khác, đó là một biến

Cácxargslệnh hoạt động trên Linux, macOS, WSL và bất cứ nơi nào bạn có môi trường UNIX

Tải xuống miễn phí của tôiSổ tay lệnh Linux


Thêm các hướng dẫn về cli: