Porady Admina: xargs

W dzisiejszym tutorialu z cyklu Porady Admina zajmiemy się programem xargs.

xargs to narzędzie, które wyszukuje pliki spełniające podane kryteria i wykonuje różne akcje na znalezionych plikach. xargs czyta ze standardowego wejścia listę elementów rozdzielonych spacjami (argumenty je zawierające mogą być ujęte w pojedyncze lub podwójne cudzysłowy albo spacje w argumentach mogą być poprzedzone przez odwrotne ukośniki) lub znakami nowej linii. Następnie wykonywane jest polecenie (domyślnie echo) jeden lub więcej razy z argumentami-początkowymi, po których następują argumenty przeczytane ze standardowego wejścia. Puste linie ze standardowego wejścia są ignorowane.

Argumenty obowiązkowe i opcjonalne dla opcji długich są również obowiązkowe i opcjonalne dla odpowiadających im opcji krótkich.
-0, –null : elementy oddzielone znakiem NULL zamiast spacji; wyłącza przetwarzanie cytowania, odwrotnych ukośników i logicznych EOF
-a, –arg-file=PLIK : odczyt argumentów z PLIKU zamiast standardowego wejścia
-d, –delimiter=ZNAK : elementy wejścia oddzielane ZNAKIEM zamiast odstępów; wyłącza przetwarzanie cytowania, odwrotnych ukośników i logicznych EOF
-E KONIEC : łańcuch logicznego EOF; jeśli KONIEC wystąpi jako linia wejścia, reszta wejścia zostanie zignorowana (bez znaczenia z opcją -0 lub -d)
-e, –eof[=KONIEC] : odpowiednik -E KONIEC, jeśli podano KONIEC; w przeciwnym wypadku nie ma łańcucha oznaczającego koniec pliku
-I R : to samo, co –replace=R
-i, –replace[=R] : zamień R w INITIAL-ARGS z nazwą czytaną ze standardowego wejścia, podziel w nowej linii
-L, –max-lines=MAKS : użycie najwyżej MAKS niepustych linii wejścia dla linii polecenia
-l[MAKS] : podobnie do -L, ale domyślnie najwyżej jedna niepusta linia, jeśli nie podano MAKS
-n, –max-args=MAKS : użycie najwyżej MAKS argumentów dla linii polecenia
-o, –open-tty : otwiera ponownie jako /dev/tty w podprocesie zanim uruchomi komendę
-P, –max-procs=MAKS : uruchomienie najwyżej MAKS procesów jednocześnie
-p, –interactive : zapytanie przed uruchomieniem poleceń
–process-slot-var=ZM : ustawienie ZMiennej środowiskowej w procesach potomnych
-r, –no-run-if-empty : bez uruchamiania polecenia, jeśli nie ma argumentów; bez tej opcji POLECENIE zostanie uruchomione przynajmniej raz
-s, –max-chars=MAKS : ograniczenie poleceń do najwyżej MAKS znaków
–show-limits : wyświetlenie limitów długości linii polecenia
-t, –verbose : wypisywanie poleceń przed ich uruchomieniem

xargs jest częścią pakietu findutils.

Składnia
xargs [OPCJA] POLECENIE [ARGUMENTY-POCZĄTKOWE]
POLECENIE | xargs POLECENIE2

Przykłady

Posiadając wiele plików w katalogu DIR1, jeden z nich PLIK1 trzeba usunąć.
Polecenie 'ls’ wyświetli zawartość całego katalogu, usunięcie można wykonać poleceniami:
ls | grep PLIK1 | xargs rm

Jak znaleźć wszystkie obrazy .png i zarchiwizować je za pomocą narzędzia tar.
find Obrazy/wyjazd2021/ -name "*.png" -type f -print0 | xargs -0 tar -cvzf wyjazd2021.tar.gz

Aby wygenerować listę wszystkich kont użytkowników w systemie Linux, użyj następującego polecenia.
cut -d: -f1 < /etc/passwd | sort | xargs

Posiadając listę plików i chcesz znać liczbę linii/słów/znaków w każdym pliku na liście, w katalogu DIR1.
ls *DIR1* | xargs wc

xarags pozwala również znaleźć i rekurencyjnie usunąć katalog, na przykład następujące polecenie rekurencyjnie usunie PODKATALOG1 z katalogu Downloads.
find Downloads -name "PODKATALOG1" -type d -print0 | xargs -0 /bin/rm -v -rf "{}"

Więcej informacji o programie xarg uzyskasz poleceniami:
xargs --help
man xargs

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna jest chroniona przez reCAPTCHA i Google Politykę Prywatności oraz obowiązują Warunki Korzystania z Usługi.