Đây là lệnh xargs có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS
CHƯƠNG TRÌNH:
TÊN
xargs - xây dựng và thực thi các dòng lệnh từ đầu vào chuẩn
SYNOPSIS
xargs [-0prtx] [-E eof-str] [-e[eof-str]] [--eof[=eof-str]] [--vô giá trị] [-d dấu phân cách]
[--dấu phân cách dấu phân cách] [-I thay thế-str] [-i[thay thế-str]] [--thay thế[=thay thế-str]]
[-l[dòng tối đa]] [-L dòng tối đa] [--dòng tối đa[=dòng tối đa]] [-n đối số tối đa] [--max-args=tối đa
args.] [-s ký tự tối đa] [- ký tự tối đa=ký tự tối đa] [-P tối đa procs] [--max-procs=tối đa procs]
[--xử lý-khe-var=tên] [- tương tác] [--dài dòng] [--lối ra] [--no-run-if-blank]
[--arg-tệp=hồ sơ] [- giới hạn hiển thị] [--phiên bản] [--Cứu giúp] [lệnh [đối số ban đầu]]
MÔ TẢ
Trang hướng dẫn này ghi lại phiên bản GNU của xargs. xargs đọc các mục từ tiêu chuẩn
đầu vào, được phân cách bằng khoảng trống (có thể được bảo vệ bằng dấu ngoặc kép hoặc đơn hoặc dấu
dấu gạch chéo ngược) hoặc các dòng mới và thực thi lệnh (mặc định là / bin / echo) một hoặc nhiều lần
với bất kỳ đối số ban đầu tiếp theo là các mục được đọc từ đầu vào chuẩn. Dòng trống trên
đầu vào tiêu chuẩn bị bỏ qua.
Dòng lệnh cho lệnh được xây dựng cho đến khi đạt đến giới hạn do hệ thống xác định (trừ khi
các -n và -L tùy chọn được sử dụng). Các quy định lệnh sẽ được gọi nhiều lần như
cần thiết để sử dụng hết danh sách các mục đầu vào. Nói chung, sẽ có ít
lời kêu gọi của lệnh hơn có các mục trong đầu vào. Điều này thường sẽ có
lợi ích hiệu suất đáng kể. Một số lệnh cũng có thể được thực hiện song song một cách hữu ích;
xem -P tùy chọn.
Vì tên tệp Unix có thể chứa khoảng trống và dòng mới, hành vi mặc định này thường
có vấn đề; tên tệp chứa khoảng trống và / hoặc dòng mới được xử lý không chính xác bởi
xargs. Trong những tình huống này, tốt hơn là sử dụng -0 tùy chọn, ngăn chặn điều đó
các vấn đề. Khi sử dụng tùy chọn này, bạn sẽ cần đảm bảo rằng chương trình tạo ra
đầu vào cho xargs cũng sử dụng một ký tự null làm dấu phân cách. Nếu chương trình đó là GNU
tìm ví dụ, -print0 tùy chọn này cho bạn.
Nếu bất kỳ lệnh gọi nào thoát ra với trạng thái 255, xargs sẽ dừng lại ngay lập tức
mà không cần đọc thêm bất kỳ đầu vào nào. Một thông báo lỗi được đưa ra trên stderr khi điều này
xảy ra.
LỰA CHỌN
-0, --vô giá trị
Các mục đầu vào được kết thúc bằng ký tự rỗng thay vì bằng khoảng trắng và
dấu ngoặc kép và dấu gạch chéo ngược không đặc biệt (mọi ký tự đều được hiểu theo nghĩa đen).
Vô hiệu hóa phần cuối của chuỗi tệp, được xử lý giống như bất kỳ đối số nào khác. Có ích
khi các mục đầu vào có thể chứa khoảng trắng, dấu ngoặc kép hoặc dấu gạch chéo ngược. GNU
tùy chọn find -print0 tạo ra đầu vào phù hợp với chế độ này.
-a hồ sơ, --arg-file =hồ sơ
Đọc các mục từ hồ sơ thay vì đầu vào tiêu chuẩn. Nếu bạn sử dụng tùy chọn này, stdin
vẫn không thay đổi khi các lệnh được chạy. Nếu không, stdin được chuyển hướng từ
/ dev / null.
--delimiter =phân định, -d phân định
Các mục đầu vào được kết thúc bằng ký tự được chỉ định. Dấu phân cách được chỉ định có thể
là một ký tự đơn lẻ, một ký tự kiểu C thoát ra, chẳng hạn như \n, hoặc một bát phân hoặc
mã thoát thập lục phân. Mã thoát bát phân và thập lục phân được hiểu là đối với
các printf yêu cầu. Các ký tự nhiều byte không được hỗ trợ. Khi xử lý
đầu vào, dấu ngoặc kép và dấu gạch chéo ngược không đặc biệt; mọi ký tự trong đầu vào đều được sử dụng
theo đúng nghĩa đen. Các -d tùy chọn vô hiệu hóa bất kỳ chuỗi cuối tệp nào, được xử lý như
bất kỳ lập luận nào khác. Bạn có thể sử dụng tùy chọn này khi đầu vào chỉ bao gồm
các mục được phân tách bằng dòng mới, mặc dù thiết kế chương trình của bạn hầu như luôn tốt hơn
sử dụng --vô giá trị nơi mà điều này có thể.
-E eof-str
Đặt phần cuối của chuỗi tệp thành eof-str. Nếu phần cuối của chuỗi tệp xảy ra dưới dạng một dòng
của đầu vào, phần còn lại của đầu vào bị bỏ qua. Nếu không -E cũng không -e được sử dụng, không có kết thúc
của chuỗi tệp được sử dụng.
-e[eof-str], --eof[= eof-str]
Tùy chọn này là một từ đồng nghĩa với -E Lựa chọn. Sử dụng -E thay vào đó, vì nó là POSIX
tuân thủ trong khi tùy chọn này không. Nếu như eof-str bị bỏ qua, không có phần cuối của tệp
chuỗi. Nếu không -E cũng không -e được sử dụng, không có phần cuối của chuỗi tệp được sử dụng.
-I thay thế-str
Thay thế các lần xuất hiện của thay thế-str trong các đối số ban đầu với các tên được đọc từ
đầu vào chuẩn. Ngoài ra, các ô trống không được trích dẫn không chấm dứt các mục đầu vào; thay vào đó
dấu phân cách là ký tự dòng mới. Ngụ ý -x và -L 1.
-i[thay thế-str], --thay thế[= Replace-str]
Tùy chọn này là từ đồng nghĩa với -Ithay thế-str if thay thế-str được quy định. Nếu
thay thế-str đối số bị thiếu, hiệu ứng giống như -I{}. Tùy chọn này là
không dùng nữa; sử dụng -I thay thế.
-L dòng tối đa
Sử dụng nhiều nhất dòng tối đa dòng đầu vào không trống trên mỗi dòng lệnh. Các khoảng trống theo sau gây ra
một dòng đầu vào được tiếp tục một cách hợp lý trên dòng đầu vào tiếp theo. Ngụ ý -x.
-l[dòng tối đa], --dòng tối đa[=dòng tối đa]
Từ đồng nghĩa với -L Lựa chọn. không giống -L, Các dòng tối đa đối số là tùy chọn. Nếu như tối đa
dòng không được chỉ định, nó mặc định là một. Các -l tùy chọn không được dùng nữa vì
Tiêu chuẩn POSIX chỉ định -L thay thế.
-n đối số tối đa, --max-args=đối số tối đa
Sử dụng nhiều nhất đối số tối đa đối số trên mỗi dòng lệnh. Ít hơn so với đối số tối đa đối số
sẽ được sử dụng nếu kích thước (xem -s tùy chọn) bị vượt quá, trừ khi -x Tùy chọn là
đưa ra, trong trường hợp nào xargs sẽ lối thoát.
-P tối đa procs, --max-procs=tối đa procs
Chạy lên phía trước tối đa procs các quy trình tại một thời điểm; mặc định là 1. Nếu tối đa procs là 0,
xargs sẽ chạy nhiều quy trình nhất có thể tại một thời điểm. Sử dụng -n tùy chọn hoặc
-L tùy chọn với -P; nếu không, rất có thể chỉ một người thực thi sẽ được thực hiện. Trong khi
xargs đang chạy, bạn có thể gửi cho quy trình của nó một tín hiệu SIGUSR1 để tăng số lượng
lệnh chạy đồng thời hoặc SIGUSR2 để giảm số lượng. Bạn không thể
tăng nó lên trên một giới hạn do triển khai xác định (được hiển thị với --show-
Hạn mức). Bạn không thể giảm nó xuống dưới 1. xargs không bao giờ kết thúc các lệnh của nó;
khi được yêu cầu giảm, nó chỉ đợi nhiều hơn một lệnh hiện có để
chấm dứt trước khi bắt đầu khác.
Vui lòng ghi rằng tùy thuộc vào các quy trình được gọi để quản lý song song đúng cách
truy cập vào các tài nguyên được chia sẻ. Ví dụ: nếu nhiều hơn một trong số họ cố gắng in
đối với stdout, ouptut sẽ được tạo ra theo một thứ tự không xác định (và rất có thể
hỗn hợp) trừ khi các quá trình hợp tác theo một cách nào đó để ngăn chặn điều này. Sử dụng một số
loại sơ đồ khóa là một cách để ngăn chặn những vấn đề như vậy. Nói chung, sử dụng một
sơ đồ khóa sẽ giúp đảm bảo đầu ra chính xác nhưng làm giảm hiệu suất. nếu bạn
không muốn chịu sự khác biệt về hiệu suất, chỉ cần sắp xếp cho từng quy trình
để tạo một tệp đầu ra riêng biệt (hoặc sử dụng các tài nguyên riêng biệt).
-P, - tương tác
Nhắc người dùng về việc có nên chạy từng dòng lệnh và đọc một dòng từ
phần cuối. Chỉ chạy dòng lệnh nếu phản hồi bắt đầu bằng `y 'hoặc` Y'.
Ngụ ý -t.
--xử lý-khe-var=tên
Đặt biến môi trường tên thành một giá trị duy nhất trong mỗi tiến trình con đang chạy.
Các giá trị được sử dụng lại khi các quy trình con thoát ra. Điều này có thể được sử dụng một cách thô sơ
sơ đồ phân phối tải chẳng hạn.
-NS, --no-run-if-blank
Nếu đầu vào tiêu chuẩn không chứa bất kỳ khoảng trống nào, đừng chạy lệnh.
Thông thường, lệnh được chạy một lần ngay cả khi không có đầu vào. Tùy chọn này là một GNU
gia hạn.
-s ký tự tối đa, - ký tự tối đa= ký tự tối đa
Sử dụng nhiều nhất ký tự tối đa các ký tự trên mỗi dòng lệnh, bao gồm lệnh và
đối số ban đầu và giá trị kết thúc null ở cuối chuỗi đối số.
Giá trị lớn nhất được phép phụ thuộc vào hệ thống và được tính như đối số
giới hạn độ dài cho thực thi, nhỏ hơn kích thước môi trường của bạn, ít hơn 2048 byte
khoảng không. Nếu giá trị này lớn hơn 128KiB, 128Kib được sử dụng làm giá trị mặc định;
nếu không, giá trị mặc định là giá trị lớn nhất. 1KiB là 1024 byte. xargs
tự động thích ứng với các ràng buộc chặt chẽ hơn.
- giới hạn hiển thị
Hiển thị các giới hạn về độ dài dòng lệnh được áp đặt bởi hoạt động
hệ thống, xargs'lựa chọn kích thước bộ đệm và -s lựa chọn. Đưa đầu vào từ
/ dev / null (và có lẽ chỉ định --no-run-if-blank) nếu bạn không muốn xargs làm
bất cứ điều gì
-NS, --dài dòng
In dòng lệnh trên đầu ra lỗi chuẩn trước khi thực thi.
-NS, --lối ra
Thoát nếu kích thước (xem -s tùy chọn) bị vượt quá.
--Cứu giúp In bản tóm tắt các tùy chọn để xargs và thoát ra.
--phiên bản
In số phiên bản của xargs và thoát ra.
VÍ DỤ
tìm / Tmp -Tên cốt lõi -kiểu f -in | xargs / bin / rm -f
Tìm tệp có tên cốt lõi trong hoặc dưới thư mục / Tmp và xóa chúng. Lưu ý rằng điều này sẽ
hoạt động không chính xác nếu có bất kỳ tên tệp nào chứa dòng mới hoặc dấu cách.
tìm / Tmp -Tên cốt lõi -kiểu f -print0 | xargs -0 / bin / rm -f
Tìm tệp có tên cốt lõi trong hoặc dưới thư mục / Tmp và xóa chúng, xử lý tên tệp
theo cách mà tên tệp hoặc thư mục có chứa khoảng trắng hoặc dòng mới là chính xác
xử lý.
tìm / Tmp -chiều sâu -Tên cốt lõi -kiểu f -xóa bỏ
Tìm tệp có tên cốt lõi trong hoặc dưới thư mục / Tmp và xóa chúng nhưng hiệu quả hơn
so với trong ví dụ trước (vì chúng tôi tránh nhu cầu sử dụng ngã ba(2) giám đốc điều hành(2) tới
phóng rm và chúng tôi không cần thêm xargs quá trình).
cắt -NS: -f1 < / etc / passwd | loại | xargs bỏ lỡ
Tạo một danh sách nhỏ gọn của tất cả người dùng trên hệ thống.
xargs sh -c 'emacs "$ @" < / dev / tty ' emacs
Khởi chạy số lượng tối thiểu các bản sao Emac cần thiết, lần lượt, để chỉnh sửa
các tệp được liệt kê trên xargs'đầu vào tiêu chuẩn. Ví dụ này đạt được hiệu quả tương tự như BSD -o
tùy chọn, nhưng theo cách linh hoạt và di động hơn.
EXIT TÌNH TRẠNG
xargs thoát với trạng thái sau:
0 nếu nó thành công
123 nếu bất kỳ lệnh gọi nào thoát ra với trạng thái 1-125
124 nếu lệnh thoát với trạng thái 255
125 nếu lệnh bị ngắt bởi một tín hiệu
126 nếu không thể chạy lệnh
127 nếu lệnh không được tìm thấy
1 nếu một số lỗi khác xảy ra.
Các mã thoát lớn hơn 128 được trình bao sử dụng để chỉ ra rằng một chương trình đã chết do
tín hiệu chết người.
TIÊU CHUẨN SỰ PHÙ HỢP
Kể từ phiên bản GNU xargs 4.2.9, hành vi mặc định của xargs không phải là có một lôgic
điểm đánh dấu cuối tệp. POSIX (IEEE Std 1003.1, 2004 Edition) cho phép điều này.
Các tùy chọn -l và -i xuất hiện trong phiên bản 1997 của tiêu chuẩn POSIX, nhưng không xuất hiện
trong phiên bản năm 2004 của tiêu chuẩn. Do đó, bạn nên sử dụng -L và I để thay thế,
tương ứng.
Tiêu chuẩn POSIX cho phép triển khai có giới hạn về kích thước của các đối số đối với
giám đốc điều hành chức năng. Giới hạn này có thể thấp tới 4096 byte bao gồm cả kích thước của
môi trường. Để các tập lệnh có thể di động, chúng không được dựa vào giá trị lớn hơn. Tuy nhiên,
Tôi biết không có triển khai nào có giới hạn thực tế là nhỏ như vậy. Các - giới hạn hiển thị tùy chọn
có thể được sử dụng để khám phá các giới hạn thực tế có hiệu lực trên hệ thống hiện tại.
Sử dụng xargs trực tuyến bằng các dịch vụ onworks.net