Jak uzyskać xargs, który pokazuje mi wiersze poleceń, które generuje bez ich uruchamiania?

17

Spora liczba poleceń linuksowych ma opcję uruchamiania na sucho, która pokaże ci, co zrobią bez zrobienia tego. Na stronie podręcznika użytkownika xargs nie widzę nic, co by to robiło, ani żadnego oczywistego sposobu na jego emulację.

(moim szczególnym przypadkiem użycia jest rozwiązywanie problemów z długimi rurociągami, chociaż jestem pewien, że istnieją inne)

Czy coś brakuje?

Andrzej
źródło
co dokładnie próbujesz zrobić?
Rahul

Odpowiedzi:

16

Umieścić echoprzed komendą, aby uruchomić?

$ echo a b c d e | xargs -n2 echo rm
rm a b
rm c d
rm e
ilkkachu
źródło
5
(Jest to oczywiście tylko proste rozwiązanie, które działa w trywialnych przypadkach. Wynik będzie dwuznaczny, jeśli parametry będą zawierały spacje lub znaki sterujące.
Potrzebowalibyśmy
Co jeśli próbujesz uruchomić na sucho echo? :)
mbigras,
31

Możesz skorzystać z flag -plub -t.

xargs -plub xargs --interactivewydrukuje polecenie do wykonania, a następnie poprosi o wprowadzenie (t / n) w celu potwierdzenia przed wykonaniem polecenia.

% 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 -tlub xargs --verbosewydrukuje każde polecenie, a następnie natychmiast je uruchom:

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

% ls
list
one
three
two
Kevin Hencke
źródło
1
doskonała odpowiedź z obu opcji -pi -t. doskonałe przykłady. Dziękuję Ci!
JCotton