Linux команда xargs.
Spisu treści:
- Jak korzystać z polecenia Linux
xargs - Jak wyświetlić polecenie i monitować użytkownika
- Jak ograniczyć liczbę argumentów
- Jak uruchamiać wiele poleceń
- Jak określić ogranicznik
- Jak czytać elementy z pliku
- Używanie
xargszfind - Używanie xargs do przycinania białych znaków
- Wniosek
Narzędzie
xargs
pozwala budować i wykonywać polecenia ze standardowego wejścia. Zwykle jest używany w połączeniu z innymi poleceniami poprzez potokowanie.
Za pomocą
xargs
możesz podać standardowe dane wejściowe jako argument do narzędzi wiersza poleceń, takich jak
mkdir
i
rm
.
W tym samouczku omówimy podstawy korzystania z polecenia
xargs
.
Jak korzystać z polecenia Linux
xargs
xargs
odczytuje argumenty ze standardowego wejścia, oddzielone pustymi spacjami lub znakami nowej linii, i wykonuje określone polecenie, używając danych wejściowych jako argumentów polecenia. Jeśli nie podano polecenia, domyślnie jest to
/bin/echo
.
Składnia polecenia
xargs
jest następująca:
xargs]
Najbardziej podstawowym przykładem użycia
xargs
byłoby przekazanie kilku ciągów znaków oddzielonych spacjami za pomocą potoku do
xargs
i uruchomienie polecenia, które użyje tych ciągów jako argumentów.
echo "file1 file2 file3" | xargs touch
W powyższym przykładzie przesyłamy standardowe wejście do
xargs
, a dla każdego argumentu uruchamiane jest polecenie
touch
, tworząc trzy pliki. To jest tak samo, jakbyś uruchomił:
Jak wyświetlić polecenie i monitować użytkownika
Aby wydrukować polecenie na terminalu przed jego wykonaniem, użyj opcji
-t
(
--verbose
):
echo "file1 file2 file3" | xargs -t touch
touch file1 file2 file3
echo "file1 file2 file3" | xargs -p touch
Wpisz
y
lub
Y
aby potwierdzić i uruchomić polecenie:
touch file1 file2 file3 ?…y
Ta opcja jest przydatna podczas wykonywania destrukcyjnych poleceń.
Jak ograniczyć liczbę argumentów
Domyślnie liczba argumentów przekazywanych do polecenia zależy od limitu systemu.
Opcja
-n
(
--max-args
) określa liczbę argumentów, które należy przekazać do podanego polecenia.
xargs
uruchamia określone polecenie tyle razy, ile jest to konieczne, aż wszystkie argumenty zostaną wyczerpane.
W poniższym przykładzie liczba argumentów odczytanych ze standardowego wejścia jest ograniczona do 1.
echo "file1 file2 file3" | xargs -n 1 -t touch
Jak widać z pełnego wyjścia poniżej, polecenie dotykowe jest wykonywane osobno dla każdego argumentu:
touch file1 touch file2 touch file3
Jak uruchamiać wiele poleceń
Aby uruchomić wiele poleceń za pomocą
xargs
, użyj opcji
-I
. Działa poprzez zdefiniowanie
replace-str
po opcji
-I
, a wszystkie wystąpienia
replace-str
są zastępowane argumentem przekazywanym do xargs.
Poniższy przykład
xargs
uruchomi dwa polecenia, najpierw utworzy pliki za pomocą
touch
, a następnie wyświetli listę plików za pomocą polecenia
ls
:
echo "file1 file2 file3" | xargs -t -I % sh -c '{ touch %; ls -l %; }'
-rw-r--r-- 1 linuxize users 0 May 6 11:54 file1 -rw-r--r-- 1 linuxize users 0 May 6 11:54 file2 -rw-r--r-- 1 linuxize users 0 May 6 11:54 file3
Częstym wyborem dla
replace-str
jest
%
. Możesz jednak użyć innego
ARGS
zastępczego, na przykład
ARGS
:
echo "file1 file2 file3" | xargs -t -I ARGS sh -c '{ touch ARGS; ls -l ARGS; }'
Jak określić ogranicznik
Użyj opcji
-d
(
--delimiter
), aby ustawić niestandardowy ogranicznik, którym może być pojedynczy znak lub sekwencja zmiany znaczenia zaczynająca się od
\
.
Poniższy przykład używamy
;
jako separator:
echo "file1;file2;file3" | xargs -d ; -t touch
Jak czytać elementy z pliku
Polecenie xargs może również odczytywać elementy z pliku zamiast standardowego wejścia. Aby to zrobić, użyj opcji
-a
(
--arg-file
), a następnie nazwy pliku.
W poniższym przykładzie polecenie
xargs
ips.txt
plik
ips.txt
i
ips.txt
każdy adres IP.
8.8.8.8 1.1.1.1
Używamy również opcji
-L 1
, która instruuje
xargs
aby czytał jedną linię naraz. Jeśli ta opcja zostanie pominięta,
xargs
przekaże wszystkie adresy IP do pojedynczej komendy
ping
.
xargs -t -L 1 -a ips.txt ping -c 1
ping -c 1 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=50 time=68.1 ms… ping -c 1 1.1.1.1 PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data. 64 bytes from 1.1.1.1: icmp_seq=1 ttl=59 time=21.4 ms
Używanie
xargs
z
find
xargs
jest najczęściej używany w połączeniu z poleceniem
find
. Możesz użyć
find
do wyszukania określonych plików, a następnie użyć
xargs
do wykonania operacji na tych plikach.
Aby uniknąć problemów z nazwami plików, które zawierają znaki nowej linii lub inne znaki specjalne, zawsze używaj opcji find
-print0
, która powoduje, że
find
wypisuje pełną nazwę pliku, po której następuje znak null. Dane wyjściowe mogą być poprawnie interpretowane przez
xargs
przy użyciu opcji
-0
, (
--null
).
W poniższym przykładzie
find
wypisze pełne nazwy wszystkich plików w katalogu
/var/www/.cache
a
xargs
przekaże ścieżki plików do komendy
rm
:
find /var/www/.cache -type f -print0 | xargs -0 rm -f
Używanie xargs do przycinania białych znaków
xargs
może być również użyty jako narzędzie do usuwania białych znaków po obu stronach danego łańcucha. Po prostu potokuj ciąg do polecenia
xargs
, a on dokona przycinania:
echo " Long line " | xargs
Long line
Może to być przydatne podczas porównywania ciągów w skryptach powłoki.
#!/bin/bash VAR1=" Linuxize " VAR2="Linuxize" if]; then echo "Strings are equal." else echo "Strings are not equal." fi ## Using xargs to trim VAR1 if]; then echo "Strings are equal." else echo "Strings are not equal." fi
Strings are not equal. Strings are equal.
Wniosek
xargs
to narzędzie wiersza polecenia w systemie Linux, które umożliwia budowanie i wykonywanie poleceń.
Aby uzyskać bardziej szczegółowe informacje o każdej opcji
xargs
, przeczytaj stronę podręcznika użytkownika xargs.
Komenda Chmod w systemie Linux (uprawnienia do plików)
W systemie Linux dostęp do plików jest zarządzany poprzez uprawnienia do plików, atrybuty i własność. W tym samouczku opisano, jak używać komendy chmod do zmiany uprawnień dostępu do plików i katalogów.
Komenda Chgrp w systemie Linux (zmiana grupy)
W systemie Linux każdy plik jest powiązany z właścicielem i grupą i ma uprawnienia określające, którzy użytkownicy mogą odczytać, zapisać lub wykonać plik. Komenda chgrpc zmienia własność grupy podanych plików.
Komenda Du w systemie Linux
Polecenie du, skrót od użycia dysku, podaje szacunkową ilość miejsca na dysku używanego przez dane pliki lub katalogi. Jest to praktycznie przydatne do wyszukiwania plików i katalogów zajmujących duże ilości miejsca na dysku.







