Em muitas situações queremos aplicar o mesmo comando a vários ficheiros ou de outra forma usar como argumento para um dado comando uma lista qualquer. Podemos querer, por exemplo, modificar o conteúdo de uma colecção de ficheiros de uma forma específica, ou verificar se um determinado serviço está ou não a correr numa colecção de servidores. Nestas situações o comando xargs pode ser muito útil.
Imaginemos que temos um site, com inúmeras páginas html, onde por azar nos enganámos a escrever o nome da empresa. Podemos, nesta situação fazer o seguinte:
Em primeiro lugar fazer backup do nosso site! A seguir mudamos para a directoria onde este está alojado e aplicamos o seguinte comando:
$ grep -rl <string antiga> . | xargs sed -i -e 's/<string antiga>/<nova string>/'
Por exemplo, se escrevemos aosis e queremos mudar para Oásis, basta fazer:
$ grep -rl aosis . | xargs sed -i -e 's/aosis/Oásis/'
Com a ajuda do ssh podemos centralizar e automatizar muitas das tarefas de rotina. Se tivermos a seguinte lista de servidores num ficheiro de texto lista_servidores.txt, podemos verificar se, por exemplo, o serviço amavis está a correr em todos eles:
servidor1.example.com servidor2.example.com
Podemos aplicar o comando:
$ xargs -i ssh -l sysadm {} "/etc/init.d/amavis status" < ./lista_server.txt
Com certeza que encontrarão muitas situações onde o uso deste comando é de um valor inestimável. O próximo passo é ler a respectiva página de manual com bastante atenção!!!