Bash Wiki
Posts (Latest 30 updated) :
Read all
Contents:
  1. [Linux] Bash xargs użycie: Przetwarzanie argumentów z wejścia
    1. Overview
    2. Usage
    3. Common Options
    4. Common Examples
    5. Tips

[Linux] Bash xargs użycie: Przetwarzanie argumentów z wejścia

Overview

Polecenie xargs jest używane do przetwarzania argumentów, które są przekazywane z wejścia standardowego, i przekazywania ich jako argumentów do innych poleceń. Umożliwia to efektywne przetwarzanie dużych zbiorów danych, które mogą być generowane przez inne polecenia.

Usage

Podstawowa składnia polecenia xargs wygląda następująco:

xargs [opcje] [argumenty]

Common Options

  • -n N: Przekazuje maksymalnie N argumentów do polecenia.
  • -d DELIMITER: Używa określonego delimitera zamiast domyślnego znaku nowej linii.
  • -0: Oczekuje, że argumenty będą zakończone znakiem null, co jest przydatne w połączeniu z find -print0.
  • -p: Pyta użytkownika przed wykonaniem każdego polecenia.
  • -I {}: Umożliwia użycie symbolu zastępczego, aby wstawić argumenty w określone miejsce w poleceniu.

Common Examples

  1. Usuwanie plików: Usunięcie wszystkich plików z rozszerzeniem .tmp w bieżącym katalogu:
    find . -name "*.tmp" | xargs rm
    
  2. Zliczanie linii w plikach: Zliczanie linii w plikach tekstowych w bieżącym katalogu:
    ls *.txt | xargs wc -l
    
  3. Kopiowanie plików: Kopiowanie plików z jednego katalogu do drugiego:
    find /source/directory -type f | xargs -I {} cp {} /destination/directory
    
  4. Przetwarzanie z delimitatorem: Użycie przecinka jako delimitera do przetwarzania argumentów:
    echo "file1,file2,file3" | xargs -d ',' cp -t /destination/directory
    

Tips

  • Używaj opcji -0 z find i xargs, aby uniknąć problemów z nazwami plików zawierającymi spacje lub znaki specjalne.
  • Zawsze testuj polecenia xargs z opcją -p, aby upewnić się, że wykonują one zamierzony efekt, zanim je uruchomisz na dużych zbiorach danych.
  • Rozważ użycie xargs w połączeniu z innymi poleceniami, aby zwiększyć efektywność skryptów i operacji w terminalu.