Polecenie XARGS w Linux z przydatnymi przykładami

Polecenie XARGS w Linux z przydatnymi przykładami

XARGS to potężne polecenie Linux/UNIX do budowania i wykonywania wierszy poleceń ze standardowego wejścia. Wymaga wyjścia polecenia i przekazuje go jako argument innego polecenia. XARGS przyjmuje standardowe dane wejściowe, ograniczone przez puste miejsca lub nowe lini. Puste linie na standardowym wejściu są ignorowane.

Składnia

Xargs [opcja]… polecenie [inicjalne argumenty]… 

Tutaj polecenie jest wykonywane z argumentami początkowymi argumentami i więcej argumentów odczytanych z danych wejściowych.

Opcje poleceń XARGS

Polecenia XARGS zapewnia ograniczoną liczbę argumentów wiersza poleceń, ale wystarczające do wykorzystania jego funkcji.

  • -0, -Null - Elementy są oddzielone zerową, a nie białymi
  • -a, -arg-file = plik - Odczytaj argumenty z pliku, a nie standardowe wejście.
  • -d, - -delimiter = znak - Elementy w strumieniu wejściowym są oddzielone przez znak, a nie biała
  • -E end - Ustaw ciąg jako login EOF. Jeśli znaleziono ciąg, reszta zostanie zignorowana.
  • -L,--max-linie = maksymalne linie - Określ maksymalną liczbę linii (nie blank), aby wziąć jako wejście w wierszu poleceń
  • -n,--max-args = maksymalne argaty - Podaj maksymalne argumenty na wiersz poleceń
  • -P,--max-procs = maksymalne procs - Określ maksymalne procesy do działania na raz
  • -P, -interaktywne - Uruchom procesy interaktywne z monitem przed uruchomieniem poleceń
  • -r,-No-Run-if-empty - Nie uruchamiaj polecenia, jeśli argumenty wejściowe są puste.
  • -T, -czasowy - Wydrukuj wszystkie polecenia na ekranie, wykonując je

Przykłady polecenia Xargs

Przykład 1. Skopiuj dużą liczbę plików do innego folderu.

Czasami musieliśmy skopiować długą listę plików, w takim przypadku polecenie CP nie powiodło się z błędem „Lista argumentów zbyt długa”. Możemy użyć XARG, aby wykonać to zadanie.

Znajdź / kopię zapasową / -type f | xargs -n1 -i cp /var/www/backup/  
Przykład 2: Usuń wiele plików z folderu.

Czasami musimy usunąć dużą liczbę plików z folderu. Poniżej przykład usunie wszystko .pliki dziennika z katalogu /var /log.

Znajdź/var/www/tmp/-type f | Xargs Rm -f  

Powyższe polecenie nie usunie plików za pomocą przestrzeni w nazwie. Aby obsłużyć przestrzenie w poleceniu Xargs Wypróbuj poniżej polecenie.

Znajdź/var/www/tmp/-type f -print0 | xargs -0 rm -f  
Przykład 3: liczba liczby linii w wielu plikach.

Poniższy przykład będzie liczył liczbę linii dla każdego .plik txt w katalogu /opt i jego subdirectory

Znajdź /opt -name "*.txt "| xargs wc -l  

Aby obsłużyć pliki o przestrzeni w nazwie, użyj następującego polecenia.

Znajdź / opt / -name "*.log "-print0 | xargs -0 wc -l  
Przykład 4: Wykonaj kopię zapasową wszystkich plików konfiguracyjnych.

Jeśli chcesz wykonać kopię zapasową wszystkich plików konfiguracyjnych (rozszerzenie .conf) W swoim systemie użyj poniżej polecenia.

Znajdź / -name "*.conf "| Xargs TAR CZF Config.smoła.GZ  
LS -L Config.smoła.GZ  -RW-R-R--. 1 root root 193310 1 kwietnia 13:26 konfiguracja.smoła.GZ 
Przykład 5. Użyj denimetru z kustonem z Xargs.

Możemy również użyć niestandardowego deleMeter z poleceniem XARGS, domyślnie używa przestrzeni i nowej linii jako ograniczenia. Użyj parametru -D, aby zdefiniować ograniczenie.

Echo „1,2,3,4,5” | xargs -d, echo  

Wyjście:

1 2 3 4 5 
Przykład 6: Pokaż dane wyjściowe w linii SEPREATE z XARGS.

W przykładzie 5 OUPUT wyświetla się w pojedynczej linii, możemy również określić, aby pokazać każde wyjście w linii oddziałowej.

Echo „1,2,3,4,5” | xargs -d, -l 1 echo  

Wyjście:

1 2 3 4 5 
Przykład 7: Obsługa pustej przestrzeni w nazwach plików lub ścieżce.

Aby obsłużyć przestrzenie w nazwach, użyj -print0 z poleceniem i -0 z poleceniem XARGS jako parametr.

Znajdź /tmp -print0 | Xargs -0 -L 1 echo