Na ausência de qualquer parâmetro, xargs
divide sua entrada em palavras e gera as mesmas, separadas por espaços simples:
echo -e a b\nc | xargs
dá
a b c
Portanto, a saída de df
do piping por meio de xargs
reduz isso em uma única linha, que é dividida novamente por awk
aqui.
Os tokens $n
são substituídos pela palavra n ; contando palavras na sua saída de exemplo (e na saída de free -m
) mostra a correspondência.
xargs
poderia ser evitado aqui, instruindo awk
para ver apenas a segunda linha de sua entrada. Além disso, a opção -P
deve ser usada com df
aqui para evitar a divisão de nomes extensos de dispositivos.