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?


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

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

1
doskonała odpowiedź z obu opcji -pi -t. doskonałe przykłady. Dziękuję Ci!
JCotton
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.