Ở đây, tùy chọn -print0 cho phép in đầy đủ đường dẫn tệp tin trên đầu ra tiêu chuẩn, theo sau là một ký tự null và tùy chọn -0 của xargs hiệu quả xử lý khoảng trắng trong tên tệp tin.
$ find Pictures/tecmint/ -name "*.png" -type f -print0 | xargs -0 tar -cvzf images.tar.gz
Tìm hình ảnh và lưu trữ bằng Tar
2. Bạn cũng có thể chuyển đổi đầu ra nhiều dòng từ lệnh ls thành một dòng duy nhất bằng cách sử dụng xargs như sau.
$ ls -1 Pictures/tecmint/ $ ls -1 Pictures/tecmint/ | xargs
Liệt kê các tệp trong một dòng
3. Để tạo ra một danh sách gọn nhẹ của tất cả các tài khoản người dùng Linux trên hệ thống, sử dụng lệnh sau.
$ cut -d: -f1 < /etc/passwd | sort | xargs
Tìm danh sách người dùng Linux
4. Giả sử bạn có một danh sách các tệp tin và bạn muốn biết số dòng/từ/ký tự trong mỗi tệp tin trong danh sách đó, bạn có thể sử dụng lệnh ls và xargs cho mục đích này như sau.
$ ls *upload* | xargs wc
Đếm số dòng, từ và ký tự trong tệp
5. Xargs cũng cho phép bạn tìm và xóa đệ quy một thư mục, ví dụ như lệnh sau sẽ xóa đệ quy thư mục DomTerm trong thư mục Downloads.
$ find Downloads -name "DomTerm" -type d -print0 | xargs -0 /bin/rm -v -rf "{}"
Tìm và đệ quy xóa thư mục
6. Tương tự với lệnh trước đó, bạn cũng có thể tìm tất cả các tệp tin có tên net_stats trong thư mục hiện tại và xóa chúng.
$ find . -name "net_stats" -type f -print0 | xargs -0 /bin/rm -v -rf "{}"
7. Tiếp theo, sử dụng xargs để sao chép một tệp tin vào nhiều thư mục cùng một lúc, trong ví dụ này, chúng ta đang cố gắng sao chép tệp tin.
$ echo ./Templates/ ./Documents/ | xargs -n 1 cp -v ./Downloads/SIC_Template.xlsx
Sao chép tệp vào nhiều thư mục
8. Bạn cũng có thể sử dụng các lệnh find, xargs và rename cùng nhau để đổi tên tất cả các tệp tin hoặc thư mục con trong một thư mục cụ thể thành chữ thường như sau.
$ find Documnets -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;
9. Đây là một ví dụ sử dụng xargs hữu ích khác, nó cho thấy cách xóa tất cả các tệp tin trong một thư mục trừ một hoặc một số tệp tin có phần mở rộng cụ thể.
$ find . -type f -not -name '*gz' -print0 | xargs -0 -I {} rm -v {}
10. Như đã đề cập trước đó, bạn có thể chỉ định cho xargs đọc các mục từ một tệp tin thay vì đầu vào tiêu chuẩn bằng cách sử dụng tùy chọn -a như được hiển thị.
$ xargs -a rss_links.txt
11. Bạn có thể bật chế độ chi tiết bằng cách sử dụng tùy chọn -t, nó cho phép xargs in ra dòng lệnh trên đầu ra lỗi tiêu chuẩn trước khi thực thi nó.
$ find Downloads -name "DomTerm" -type d -print0 | xargs -0 -t /bin/rm -rf "{}"
12. Mặc định, xargs kết thúc/giới hạn các mục bằng khoảng trắng, bạn có thể sử dụng tùy chọn -d để đặt ký tự phân tách, có thể là một ký tự đơn, một ký tự thoát theo kiểu C như \n, hoặc một mã thoát bát phân hoặc thập lục phân.
Ngoài ra, bạn cũng có thể yêu cầu người dùng xem xét việc thực thi từng dòng lệnh và đọc một dòng từ terminal bằng cách sử dụng tùy chọn -p như được hiển thị (chỉ cần nhập y cho "có" hoặc n cho "không").
$ echo ./Templates/ ./Documents/ | xargs -p -n 1 cp -v ./Downloads/SIC_Template.xlsx
Nhắc người dùng trước khi chạy lệnh
Để biết thêm thông tin, hãy đọc trang man của xargs.
$ man xargs
Lệnh xargs là một tiện ích mạnh mẽ để xây dựng một dòng lệnh, nó có thể giúp bạn truyền đầu ra của một lệnh như một đối số của một lệnh khác để xử lý. Những ví dụ trên sẽ giúp người mới bắt đầu thành thạo hơn với hệ điều hành Linux.
Mọi người cũng tìm kiếm: xargs, xargs linux, xargs {}, xargs ubuntu, man xarg.
Mọi người cùng tìm kiếm: xargs, xargs linux, xarg, xagrs
Tips: Tham gia Channel Telegram KDATA để không bỏ sót khuyến mãi hot nào