De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 27 de fevereiro de 2023
O comando find
é usado para localizar arquivos ou diretórios com base em
critérios específicos, enquanto o grep
é usado para pesquisar conteúdo em
arquivos. Quando usados em conjunto com o comando tar
, é possível criar
um arquivo compactado contendo apenas os arquivos que correspondem a um
determinado critério de busca.
Criação do arquivo compactado
Para criar um arquivo compactado com base em um critério de busca, primeiro
é necessário usar o comando find
para localizar os arquivos e diretórios que
correspondem a esse critério e, em seguida, usar o comando tar
para criar
o arquivo compactado.
Exemplo: criar um arquivo compactado contendo todos os arquivos cujo nome
contém a palavra "documento
" e estão localizados no diretório /home/user
:
$ find /home/user -name "*documento*" | tar -czvf documentos.tar.gz -T -
Explicação:
Comando | Descrição |
---|---|
find /home/user -name "*documento*" |
localiza todos os arquivos e diretórios que contêm a palavra "documento " no nome, no diretório /home/user . |
| |
o pipe é usado para redirecionar a saída do comando find para o comando tar . |
tar -czvf documentos.tar.gz -T - |
cria um arquivo compactado chamado documentos.tar.gz contendo todos os arquivos e diretórios encontrados pelo comando find . O parâmetro -T - é usado para ler a lista de arquivos a serem compactados da entrada padrão (que foi redirecionada para o comando find usando o pipe). |
Extração do arquivo compactado
Para extrair os arquivos contidos em um arquivo compactado criado dessa forma,
basta usar o comando tar
com o parâmetro -xvf
seguido do nome do
arquivo compactado.
Exemplo: extrair os arquivos do arquivo compactado documentos.tar.gz
no diretório /tmp
:
$ tar -xvf documentos.tar.gz -C /tmp
Explicação:
Comando | Descrição |
---|---|
tar -xvf documentos.tar.gz |
extrai os arquivos contidos no arquivo compactado documentos.tar.gz . |
-C /tmp |
especifica que os arquivos devem ser extraídos no diretório /tmp . |
Suponha que você queira criar um arquivo compactado contendo todos os arquivos
com a extensão .txt
dentro do diretório atual e seus subdiretórios, mas
excluindo aqueles que contêm a palavra confidencial
no conteúdo. Você pode
usar o comando find
para localizar todos os arquivos com a extensão .txt
e, em seguida, usar o grep
para filtrar aqueles que não contêm a palavra
confidencial
. Por fim, você pode usar o tar
para criar um arquivo compactado
com os arquivos restantes.
O comando ficaria assim:
$ find . -type f -name "*.txt" -exec grep -L "confidencial" {} \; | xargs tar -czvf arquivos_texto.tar.gz
Neste comando, o find
procura por todos os arquivos com extensão .txt
dentro do diretório atual e seus subdiretórios. Em seguida, o comando exec
executa o grep
em cada um dos arquivos encontrados, filtrando aqueles que
não contêm a palavra confidencial
. O grep
usa a opção -L
para listar
apenas os nomes dos arquivos que não contêm a palavra confidencial
. O
resultado é então enviado para o xargs
, que cria a lista de arquivos
que serão compactados pelo tar
. Por fim, o tar
é usado para criar
o arquivo compactado arquivos_texto.tar.gz
com os arquivos restantes.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários