GNU/Linux >> Linux Esercitazione >  >> Linux

cos'è diff bentween xargs con parentesi graffe e senza in linux

xargs rm invocherà rm con tutti gli argomenti come parametro partiti con spazi.

xargs -i{} rm {} invocherà rm {} per ogni argomento e {} sarà sostituito dall'argomento corrente.

Se hai 2 argomenti a.txt e b.txt , xargs rm chiamerà questo

rm a.txt b.txt

Ma xargs -i{} rm {} chiamerà

rm a.txt
rm b.txt

Questo perché -i opzione implica -L 1 opzione che significa il comando rm richiederà solo 1 linea ogni volta. E qui ogni riga contiene solo 1 argomento.

Controlla questo link Ideone per farti un'idea più chiara.


Con le parentesi graffe genererà un rm processo per file. Senza le parentesi graffe, xargs passerà il maggior numero possibile di nomi di file a ciascun rm comando.

Confronta

ls | xargs echo

e

ls | xargs -i echo '{}'

L'opzione -i (equivalente a --replace) crea una sorta di segnaposto in cui xargs memorizza l'input appena ricevuto. Nel tuo secondo comando, il segnaposto è "{}", funziona come l'opzione find -exec. Una volta definito, xargs sostituirà questo segnaposto con l'intera riga di input. Se non ti piace il nome "{}", puoi definirne uno tuo:

ls | xargs -iPLACEHOLDER echo PLACEHOLDER

Nel tuo caso, entrambi i comandi stanno producendo lo stesso risultato. Nella seconda forma, stai solo rendendo esplicito il comportamento predefinito con l'opzione -i.


Linux
  1. Cosa c'è di nuovo con rdiff-backup?

  2. Che cos'è un comando Chown in Linux e come usarlo

  3. Flatpak su Linux:cos'è e come installare app con esso

  4. Che cos'è Podman e come installare Podman in Linux

  5. Cos'è NFS e come installarlo su Linux

Come aggiungere repository a Red Hat Linux con e senza proxy

Linux Tail Command:cos'è e come usarlo

Comando Diff in Linux con esempi

Qual è la differenza tra Linux e Unix?

Che cos'è Crontab e come automatizzare le attività in Linux con Crontab

Cos'è Git e come installare Git in Linux