Làm cách nào để có được xargs để hiển thị cho tôi các dòng lệnh mà nó tạo ra mà không chạy chúng?


17

Một số lượng lớn các lệnh linux có tùy chọn chạy khô sẽ cho bạn thấy những gì chúng sẽ làm mà không cần thực hiện. Tôi không thấy gì trong trang man xargs làm điều đó và không có cách rõ ràng nào để mô phỏng nó.

(trường hợp sử dụng cụ thể của tôi là xử lý sự cố đường ống dài, mặc dù tôi chắc chắn có những đường ống khác)

Tui bỏ lỡ điều gì vậy?


chính xác những gì bạn đang cố gắng để làm gì?
Ra-ma

Câu trả lời:


16

Đặt một echotrước lệnh để chạy?

$ echo a b c d e | xargs -n2 echo rm
rm a b
rm c d
rm e

5
(Điều này, tất nhiên là chỉ có một giải pháp đơn giản mà các công trình trong trường hợp tầm thường Kết quả sẽ rõ ràng nếu các thông số chứa khoảng trắng hoặc ký tự điều khiển Chúng tôi cần một số công cụ chuyên dụng để rõ ràng in các thông số mà nó nhận được...)
ilkkachu

Nếu bạn đang cố gắng chạy khô echothì sao? :)
mbigras

31

Bạn có thể được hưởng lợi từ -phoặc -tcờ.

xargs -phoặc xargs --interactivesẽ in ra lệnh sẽ được thực thi và sau đó nhắc nhập (y / n) để xác nhận trước khi thực hiện lệnh.

% cat list
one
two
three

% ls
list

% cat list | xargs -p -I {} touch {}
touch one ?...y
touch two ?...n
touch three ?...y

% ls
list
one
three

xargs -thoặc xargs --verbosesẽ in từng lệnh, sau đó thực hiện ngay lập tức:

% cat list | xargs -t -I {} touch {}
touch one 
touch two 
touch three 

% ls
list
one
three
two

1
câu trả lời tuyệt vời với cả hai -p-tlựa chọn. ví dụ tuyệt vời. cảm ơn bạn!
JC Bông
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.