Linux команда xargs.
Mục lục:
- Cách sử dụng lệnh Linux
xargs - Cách xem lệnh và nhắc nhở người dùng
- Làm thế nào để hạn chế số lượng đối số
- Cách chạy nhiều lệnh
- Cách chỉ định một dấu phân cách
- Cách đọc các mục từ tệp
- Sử dụng
xargsvớifind - Sử dụng xargs để cắt các ký tự khoảng trắng
- Phần kết luận
Tiện ích
xargs
cho phép bạn xây dựng và thực hiện các lệnh từ đầu vào tiêu chuẩn. Nó thường được sử dụng kết hợp với các lệnh khác thông qua đường ống.
Với
xargs
, bạn có thể cung cấp đầu vào tiêu chuẩn làm đối số cho các tiện ích dòng lệnh như
mkdir
và
rm
.
Trong hướng dẫn này, chúng tôi sẽ đề cập đến những điều cơ bản khi sử dụng lệnh
xargs
.
Cách sử dụng lệnh Linux
xargs
xargs
đọc các đối số từ đầu vào tiêu chuẩn, được phân tách bằng khoảng trắng hoặc dòng mới và thực thi lệnh được chỉ định bằng cách sử dụng đầu vào làm đối số của lệnh. Nếu không có lệnh nào được cung cấp, mặc định là
/bin/echo
.
Cú pháp của lệnh
xargs
như sau:
xargs]
Ví dụ cơ bản nhất về việc sử dụng
xargs
là chuyển một số chuỗi được phân tách bằng khoảng trắng bằng cách sử dụng một đường ống để
xargs
và chạy một lệnh sẽ sử dụng các chuỗi đó làm đối số.
echo "file1 file2 file3" | xargs touch
Trong ví dụ trên, chúng tôi đang chuyển đầu vào tiêu chuẩn sang
xargs
và lệnh
touch
được chạy cho mỗi đối số, tạo ba tệp. Điều này giống như khi bạn chạy:
Cách xem lệnh và nhắc nhở người dùng
Để in lệnh trên thiết bị đầu cuối trước khi thực hiện, hãy sử dụng tùy chọn
-t
(
--verbose
):
echo "file1 file2 file3" | xargs -t touch
touch file1 file2 file3
echo "file1 file2 file3" | xargs -p touch
Nhập
y
hoặc
Y
để xác nhận và chạy lệnh:
touch file1 file2 file3 ?…y
Tùy chọn này rất hữu ích khi thực hiện các lệnh phá hoại.
Làm thế nào để hạn chế số lượng đối số
Theo mặc định, số lượng đối số được truyền cho lệnh được xác định bởi giới hạn của hệ thống.
Tùy chọn
-n
(
--max-args
) chỉ định số lượng đối số được truyền cho lệnh đã cho.
xargs
chạy lệnh được chỉ định nhiều lần nếu cần thiết cho đến khi tất cả các đối số đã hết.
Trong ví dụ sau, số lượng đối số được đọc từ đầu vào tiêu chuẩn được giới hạn là 1.
echo "file1 file2 file3" | xargs -n 1 -t touch
Như bạn có thể thấy từ đầu ra dài dòng bên dưới, lệnh cảm ứng được thực hiện riêng cho từng đối số:
touch file1 touch file2 touch file3
Cách chạy nhiều lệnh
Để chạy nhiều lệnh với
xargs
, hãy sử dụng tùy chọn
-I
. Nó hoạt động bằng cách định nghĩa một
replace-str
sau tùy chọn
-I
và tất cả các lần xuất hiện của
replace-str
được thay thế bằng đối số được truyền cho xargs.
Ví dụ
xargs
sau đây sẽ chạy hai lệnh, đầu tiên nó sẽ tạo các tệp bằng
touch
và sau đó nó sẽ liệt kê các tệp bằng
ls
:
echo "file1 file2 file3" | xargs -t -I % sh -c '{ touch %; ls -l %; }'
-rw-r--r-- 1 linuxize users 0 May 6 11:54 file1 -rw-r--r-- 1 linuxize users 0 May 6 11:54 file2 -rw-r--r-- 1 linuxize users 0 May 6 11:54 file3
Một lựa chọn phổ biến cho
replace-str
là
%
. Tuy nhiên, bạn có thể sử dụng một trình giữ chỗ khác, ví dụ:
ARGS
:
echo "file1 file2 file3" | xargs -t -I ARGS sh -c '{ touch ARGS; ls -l ARGS; }'
Cách chỉ định một dấu phân cách
Sử dụng tùy chọn
-d
(
--delimiter
) để đặt một dấu phân cách tùy chỉnh, có thể là một ký tự đơn hoặc một chuỗi thoát bắt đầu bằng
\
.
Ví dụ sau chúng tôi đang sử dụng
;
như một dấu phân cách:
echo "file1;file2;file3" | xargs -d ; -t touch
Cách đọc các mục từ tệp
Lệnh xargs cũng có thể đọc các mục từ một tệp thay vì đầu vào tiêu chuẩn. Để làm như vậy, sử dụng tùy chọn
-a
(
--arg-file
) theo sau là tên tệp.
Trong ví dụ sau, lệnh
xargs
sẽ đọc tệp
ips.txt
và ping từng Địa chỉ IP.
8.8.8.8 1.1.1.1
Chúng tôi cũng đang sử dụng tùy chọn
-L 1
, hướng dẫn
xargs
đọc một dòng tại thời điểm đó. Nếu tùy chọn này bị bỏ qua,
xargs
sẽ chuyển tất cả IP sang một lệnh
ping
.
xargs -t -L 1 -a ips.txt ping -c 1
ping -c 1 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=50 time=68.1 ms… ping -c 1 1.1.1.1 PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data. 64 bytes from 1.1.1.1: icmp_seq=1 ttl=59 time=21.4 ms
Sử dụng
xargs
với
find
xargs
thường được sử dụng kết hợp với lệnh
find
. Bạn có thể sử dụng
find
để tìm kiếm các tệp cụ thể và sau đó sử dụng
xargs
để thực hiện các thao tác trên các tệp đó.
Để tránh các vấn đề với tên tệp chứa dòng mới hoặc các ký tự đặc biệt khác, luôn sử dụng tùy chọn find
-print0
, điều này khiến
find
in tên tệp đầy đủ theo sau là ký tự null. Đầu ra này có thể được giải thích chính xác bởi
xargs
bằng cách sử dụng tùy chọn
-0
, (
--null
).
Trong ví dụ sau,
find
sẽ in tên đầy đủ của tất cả các tệp bên trong thư mục
/var/www/.cache
và
xargs
sẽ chuyển các đường dẫn tệp tới lệnh
rm
:
find /var/www/.cache -type f -print0 | xargs -0 rm -f
Sử dụng xargs để cắt các ký tự khoảng trắng
xargs
cũng có thể được sử dụng như một công cụ để loại bỏ khoảng trắng từ cả hai phía của một chuỗi đã cho. Đơn giản chỉ cần nối chuỗi vào lệnh
xargs
và nó sẽ thực hiện cắt xén:
echo " Long line " | xargs
Long line
Điều này có thể hữu ích khi so sánh các chuỗi trong shell script.
#!/bin/bash VAR1=" Linuxize " VAR2="Linuxize" if]; then echo "Strings are equal." else echo "Strings are not equal." fi ## Using xargs to trim VAR1 if]; then echo "Strings are equal." else echo "Strings are not equal." fi
Strings are not equal. Strings are equal.
Phần kết luận
xargs
là một tiện ích dòng lệnh trên Linux cho phép bạn xây dựng và thực thi các lệnh.
Để biết thêm thông tin chi tiết về từng tùy chọn
xargs
, hãy đọc trang man xargs.
Vodafone là một trong những nhà khai thác lớn đầu tiên thông báo rằng họ dự định thu hẹp số hệ điều hành được sử dụng điện thoại trên mạng của mình chỉ có hai hoặc ba. Năm 2006, hãng đã chọn Symbian, Linux và Windows Mobile làm ba nền tảng để chạy điện thoại thông minh của mình trong 5 năm tới. Trong khi Android dựa trên Linux, nó không tương thích với các tiêu chuẩn được thiết lập bởi LiMo Foundation, một nhóm tạo và xuất bản các chi tiết kỹ thuật cho phần mềm trung gian cho các thiết bị Linux
[ĐọC thêm: Điện thoại Android tốt nhất cho mỗi ngân sách. Các thành viên khác của OHA bao gồm AKM Semiconductor, ARM, AsusTek Computer, Atheros Communications, Borqs, Ericsson, Garmin International, Huawei Technologies, Omron Software, Softbank Mobile, Teleca và Toshiba.
] Năm người đã bị bắt giữ vì tội phỉ báng những tuần kể từ khi các tài khoản văn bản và video của vụ bê bối lan truyền trên các diễn đàn Web phổ biến của Trung Quốc, các luật sư cho hai trong số những người bị bắt giữ nói hôm thứ Năm. từ một điện thoại di động đầu thứ năm, tuyên bố đã bị cảnh sát đưa đi trong cùng quận Phúc Châu, tỉnh Phúc Kiến, nơi các vụ bắt giữ khác xảy ra. cô con gái 25 tuổi của cô, Yan Xiaoling, và ra lệnh cho cô đi ra gặp. Người phụ nữ tìm thấy con gái mình đã chết trong b
Cảnh sát đã tổ chức một cuộc họp báo vào ngày hôm sau. đăng lại. Một quan chức từ chối bất kỳ bạo lực hay hãm hiếp nào và cho biết Yan đã chết do chảy máu do mang thai thất bại, theo hãng tin Tân Hoa Xã.
Cách sử dụng lệnh ngủ linux để tạm dừng tập lệnh bash
Ngủ là một tiện ích dòng lệnh cho phép bạn tạm dừng quá trình gọi trong một thời gian nhất định. Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách sử dụng lệnh ngủ Linux.







