Como usar Xargs com Find in Linux

Como usar Xargs com Find in Linux
Este tutorial explica como usar os comandos Xargs e encontrar para fazer operações combinadas.

Depois de ler este tutorial, você pode pesquisar arquivos usando o comando find e executar um comando específico com base em resultados correspondentes.

Instruções e exemplos são úteis para a maioria das distribuições Linux. O conteúdo é otimizado para usuários de Linux novos e experientes.

Todas as etapas descritas neste artigo contêm capturas de tela para facilitar para todos os usuários do Linux entender e aplicá -los.

Exemplos de uso incluídos neste artigo são os seguintes:

  • Encontre e exclua arquivos por extensão (tipo de arquivo).
  • Encontre e exclua arquivos por nome.
  • Encontre e altere as permissões de arquivo com base nas permissões atuais.

Breve Introdução aos comandos de Find e Xargs

O Xargs comando, quando combinado com outros comandos como encontrar, usa a saída do primeiro comando como argumento.

Por exemplo, vamos executar o encontrar comando para identificar arquivos com uma extensão ou tipo de arquivo específico. Podemos adicionar o Xargs comando para executar uma ação para todos os arquivos que correspondem à extensão especificada a encontrar.

Como você pode ver na linha a seguir, um tubo separa o comando 1 e o comando 2, onde o comando 1 pode ser qualquer comando como ls, e comando 2, incluindo o comando XARGS, seguido de uma ação específica como gato.

[Comando 1] | [Comando 2]

O exemplo aplicável seria:

ls | Xargs Cat

Este comando listará todos os arquivos no diretório atual. Em seguida, a saída (arquivos listados) será usada por Xargs como um argumento, e seu conteúdo será impresso conforme instruído por Xargs Cat. Veja a seguinte captura de tela:

Como encontrar e mover arquivos usando Xargs

A primeira seção deste tutorial explica como usar os comandos Find e Xargs para pesquisar e mover arquivos que correspondam a uma condição, neste caso, o tipo de arquivo.

Vamos começar encontrando arquivos por extensão e movendo -os para um diretório específico usando Xargs.

Antes de começar, execute o ls comando para mostrar arquivos e diretórios dentro do meu subdiretório nomeado testdir.

ls

Como você pode ver, existem diferentes tipos de arquivos, incluindo .TXT, .c, e arquivos sem extensões. Além disso, preste atenção ao tutorialdir diretório.

Vamos supor que você queira mover arquivos com uma extensão específica para um diretório. A sintaxe é a seguinte:

encontrar -nome '*.'-Type f | XARGS MV -T

Na sintaxe anterior, a -nome a opção precede o nome ou condição do arquivo com base no nome do arquivo. O -Tipo F a opção especifica que o comando find lida com arquivos e não diretórios. O -t a opção anterior ao diretório de destino é usada para definir o diretório de destino. Preste atenção ao curinga (*) antes da extensão, instruindo o comando encontrar para pesquisar todos os arquivos da extensão especificada independentemente do nome.

Assim, se você quiser mover tudo .TXT arquivos para o diretório nomeado tutorialdir, Execute o seguinte comando:

encontrar . -nome '*.txt '-Type f | XARGS MV -T TutorialDir

Como você pode ver, depois de executar o ls Comando duas vezes, os arquivos foram movidos do diretório atual para o tutorialdir subdiretório.

A sintaxe é a mesma para todos os tipos de arquivo. Vamos repeti -lo, desta vez para .c arquivos:

encontrar . -nome '*.C ' -Type F | XARGS MV -T TutorialDir

O primeiro comando LS mostra três .c arquivos no diretório atual. Depois de executar o comando de localização com Xargs, o comando da árvore mostra tudo .C Os arquivos foram movidos para o tutorialdir diretório, onde .TXT Os arquivos foram transportados no exemplo anterior.

Encontre e exclua arquivos e diretórios por nome com XARGS

A sintaxe para encontrar e excluir arquivos usando XARGS é o seguinte:

encontrar -nome | Xargs rm

É aqui que é o diretório pai que você pesquisa e os arquivos e é o nome do arquivo que você deseja encontrar e remover.

Vamos ver o cenário atual na captura de tela a seguir:

ls

No primeiro exemplo, escolha arquivos por tipo, conforme feito na seção anterior, para removê -los, como mostrado abaixo:

encontrar . -nome "*.C "| Xargs RM

Como você pode ver acima, todos .c Os arquivos foram excluídos com sucesso.

Agora, o cenário é o seguinte:

ls

No exemplo atual, usarei o curinga para remover todos os arquivos cujo nome começa com “arquivo”, Independentemente da continuação do nome.

encontrar . -Nome "Arquivo*" | Xargs rm

Até agora, este artigo explicou como lidar com os arquivos. Agora, vamos ver como usar o Find e Xargs com diretórios. No novo cenário, existem cinco novos diretórios: dir1, Dir2, Dir3, dir4, e Dir5, Como mostrado na imagem a seguir:

ls

Supondo que você queira remover todos os diretórios com nomes começando com “dir”, Execute o mesmo comando. No entanto, após o comando rm, adicione o -r Flag usado para lidar com diretórios, conforme mostrado na figura a seguir:

encontrar . -Nome "Dir*" | XARGS RM -R

Encontre e exclua arquivos com base em permissões

Esta seção descreve a localização de arquivos por permissões específicas e alterando -as usando XARGS.

Como você pode ver abaixo, arquivos algo1.txt, algo2.TXT, e algo3.TXT Tenha permissões completas para todos (777).

ls -l

A sintaxe para encontrar arquivos por permissão e alterá -los é mostrada abaixo:

encontrar -Perm | Xargs chmod

Para encontrar todos os arquivos com permissões completas a todos (777) no diretório atual e alterá -las para permissões completas para o proprietário e ler e executar permissões para usuários do grupo e outros (755), execute o comando executado no seguinte:

encontrar . -Perm 777 | XARGS CHMOD 755

Conclusão

Como você pode ver, o comando XARGS, quando combinado com o comando find, é útil para tarefas em massa ou tarefas específicas quando você não conhece o local de um arquivo. Ambos os comandos são fáceis de implementar e podem ser incorporados por novos usuários para facilitar sua experiência com o terminal Linux. Find e XARGs são comandos básicos do Linux. Qualquer usuário do Linux deve saber como se aplicar. XARGS pode ser combinado com outros comandos básicos, como ls. As instruções explicadas acima são úteis para todas as distribuições Linux.

Confira mais artigos para obter mais dicas e tutoriais do Linux.