Jak używać polecenia xargs ⋆ ALexHost SRL

Sprawdź swoje umiejętności we wszystkich naszych usługach hostingowych i otrzymaj 15% zniżki!

Użyj kodu przy kasie:

Skills
18.12.2024

Jak używać polecenia xargs

Polecenie xargs jest potężnym narzędziem w systemach Unix/Linux, które służy do tworzenia i wykonywania poleceń przy użyciu standardowego wejścia. Pobiera dane wejściowe z polecenia lub pliku i przekazuje je jako argumenty do innego polecenia. Jest to szczególnie przydatne podczas obsługi dużej liczby plików, argumentów lub danych, które muszą być przetwarzane przez inne polecenia.

W tym artykule zbadamy, jak działa xargs, jego praktyczne przypadki użycia i jak zaimplementować go w różnych scenariuszach.

Podstawowe zastosowanie xargs

Polecenie xargs odczytuje elementy ze standardowego wejścia (stdin), zwykle oddzielone białymi znakami lub znakami nowej linii, i przekazuje je jako argumenty do określonego polecenia. Najbardziej podstawowe użycie xargs wygląda następująco:

command | xargs another_command

Na przykład, jeśli chcesz usunąć wszystkie pliki .txt w katalogu za pomocą find i rm, możesz użyć:

find . -name "*.txt" | xargs rm

Tutaj find generuje listę plików .txt, a xargs przekazuje tę listę jako argumenty do polecenia rm, usuwając pliki.

Praktyczne przykłady użycia xargs

1. Przekazywanie argumentów do polecenia

Najczęstszym zastosowaniem xargs jest przekazywanie dużej listy argumentów do polecenia. Na przykład, można utworzyć wiele plików za pomocą touch:

echo "plik1.txt plik2.txt plik3.txt" | xargs touch

To polecenie tworzy trzy pliki: plik1 . txt, plik2.txt i plik3.txt.

2. Usuwanie plików znalezionych przez find

Potężna kombinacja find i xargs pozwala usuwać pliki na podstawie określonych kryteriów. Na przykład, aby znaleźć i usunąć wszystkie pliki .log w katalogu:

find /path/to/dir -name "*.log" | xargs rm

Spowoduje to znalezienie wszystkich plików .log, a następnie ich usunięcie. Bez xargs, musiałbyś obsłużyć ten proces ręcznie lub użyć bardziej skomplikowanych konstrukcji.

3. Ograniczanie liczby argumentów

Domyślnie xargs przekazuje jak najwięcej argumentów do polecenia za jednym razem. Można jednak ograniczyć liczbę przekazywanych argumentów za pomocą opcji -n. Na przykład:

echo "one two three four five" | xargs -n 2 echo

Wyjście:

Ogranicza to echo do dwóch argumentów na wykonanie polecenia, dzieląc dane wejściowe na mniejsze części.

4. Potwierdzanie wykonania polecenia

Jeśli chcesz wykonać polecenie interaktywnie, prosząc o potwierdzenie przed uruchomieniem polecenia dla każdego argumentu, użyj opcji -p:

echo "plik1 plik2 plik3" | xargs -p rm

Spowoduje to zapytanie o potwierdzenie przed usunięciem każdego pliku.

5. Obsługa plików ze znakami specjalnymi

Czasami nazwy plików lub dane mogą zawierać spacje lub znaki specjalne. W takich przypadkach lepiej jest użyć find z opcją -print0 i xargs z opcją -0, aby upewnić się, że dane wejściowe są przetwarzane poprawnie:

find . -name "*.txt" -print0 | xargs -0 rm

Zapewnia to, że nazwy plików zawierające spacje lub znaki specjalne są poprawnie przekazywane do polecenia rm.

6. Używanie xargs z grep

Możesz połączyć xargs z grep, aby wyszukać wzorzec w wielu plikach. Na przykład:

find . -name "*.txt" | xargs grep "pattern"

To polecenie znajduje wszystkie pliki

.txt
w bieżącym katalogu i wyszukuje w nich wyrażenie “pattern”.

7. Łączenie wielu poleceń za pomocą xargs

Możesz użyć xargs do wykonania wielu poleceń. Na przykład, jeśli chcesz zarówno wyświetlić listę, jak i usunąć zestaw plików:

find . -name "*.tmp" | tee /dev/tty | xargs rm

Tutaj tee wyświetla listę plików .tmp na terminalu (przez /dev/tty), a xargs przekazuje tę listę do polecenia rm w celu usunięcia.

Wspólne opcje z xargs

  • n : Ogranicza liczbę argumentów przekazywanych do polecenia na wykonanie. Na przykład, xargs -n 2 przekaże dwa argumenty na raz.
  • 0: Służy do obsługi danych wejściowych zakończonych zerem, zwykle z find przy użyciu -print0. Przydatne do obsługi nazw plików zawierających spacje lub znaki specjalne.
  • I {}: Zastępuje wystąpienia {} argumentami ze stdin. Jest to przydatne, gdy chcemy umieścić argumenty w określonym miejscu polecenia, a nie tylko na jego końcu.
  • p: Pyta użytkownika o potwierdzenie przed wykonaniem polecenia.
  • t: Wypisuje polecenie do terminala przed jego wykonaniem, przydatne do debugowania.

Dlaczego warto używać xargs?

  1. Wydajność: Gdy mamy do czynienia z dużą liczbą plików lub danych wejściowych, xargs pomaga zmniejszyć narzut związany z wykonywaniem wielu poleceń poprzez grupowanie argumentów.
  2. Elastyczność: xargs zapewnia elastyczność, umożliwiając łączenie poleceń w potoku, płynnie przekazując dane między nimi.
  3. Automatyzacja: Podczas pisania skryptów powłoki, xargs jest niezbędny do automatyzacji zadań, które wymagają przetwarzania wielu danych wejściowych. Sprawia, że zarządzanie listami plików, listami argumentów i strumieniami danych jest proste i wydajne.

Podsumowanie

Polecenie xargs jest potężnym narzędziem, które poprawia sposób interakcji z innymi poleceniami w systemach Unix/Linux. Niezależnie od tego, czy masz do czynienia z zarządzaniem plikami, przetwarzaniem strumieni danych, czy wykonywaniem powtarzalnych zadań, xargs usprawnia proces. Ucząc się wykorzystywać jego opcje i łącząc go z innymi poleceniami, takimi jak find, grep czy rm, możesz znacznie poprawić swoją produktywność w terminalu.

Jeśli wcześniej nie korzystałeś z xargs, teraz jest idealny czas, aby go wypróbować i zobaczyć, jak może uprościć operacje w wierszu poleceń.

Sprawdź swoje umiejętności we wszystkich naszych usługach hostingowych i otrzymaj 15% zniżki!

Użyj kodu przy kasie:

Skills