#DicasLPI – 103.3 – Gerenciamento básico de arquivos no Linux [parte 3]

Deividson Ludolf 19/09/2012 1
#DicasLPI – 103.3 – Gerenciamento básico de arquivos no Linux [parte 3]
Share

bannerChegando ao capítulo final deste objetivo, apresentaremos os últimos detalhes para encerrar os estudos do gerenciamento básico de arquivos demonstrando a utilização de caracteres curingas e também como encontrar arquivos.

Caracteres curingas

Ao trabalhar com arquivos na linha de comando, você frequentemente se deparará com situações nas quais precisará realizar operações em muitos arquivos ao mesmo tempo. Exemplo, haverá situações em que você precisará mover ou apagar todos os arquivos de um diretório , ou pelo menos um grupo seleto de arquivos. Em outras situações, os nomes dos arquivos poderão ser longos ou difíceis de digitar, e você desejará uma alternativa abreviada para digitar os nomes dos arquivos para cada comando que rodar.  Para simplificar essas operações, o linux oferece os caracteres  “curingas” para nomes de arquivos, conforme alguns exemplos abaixo:

O caractere * substitui apenas um caractere.

Obs – Foi utilizado o comando sort somente para melhor visualização do comando ls.

O caractere ? substitui apenas um caractere:

O uso de colchetes ([123]) indica uma lista de caracteres:

Chave ({}) indicam uma lista de termos separados por vírgula:

Localizando arquivos

Um dos principais comandos na busca de arquivos no linux, é o find,  apresentando a sintaxe abaixo:

find diretório critério [-exec comando () \:].

O argumento diretório indica onde o find deve iniciar a busca, e o critério pode ser o nome do arquivo ou diretório a ser procurado ou uma regra para a busca. Para um melhor entendimento iremos apresentar alguns exemplos abaixo:

Buscas por nome

- Encontrar arquivos que terminem com “txt” no diretório atual e subdiretórios:

$ find -name ‘*txt”

- Encontrar arquivos que contenham “teste” em qualquer parte do nome, independente da casa (maiúsculas/minúsculas), no diretório atual e subdiretórios:

$ find -iname ‘*teste*’

- Encontrar links que apontam para arquivos que contenham “redeslinux” no nome, no diretório /home:

$ find /home -lname ‘*redeslinux*’

- Semelhante ao acima, porém ignorando a casa:

$ find /home -ilname ‘*redeslinux*’

Buscas por tipo

- Encontrar diretórios em /var que se chamem exatamente “ldap”:

$ find /var -type d -name ldap

- Encontrar arquivos em /home cujo nome termine em “.txt”:

$ find /home -type f -name ‘*.txt’

Buscas por datas

- Encontrar arquivos e diretórios modificados em /home há menos de 5 dias (repare no sinal de menos):

$ find /home -mtime -5

- Encontrar arquivos que não são acessados há mais de 120 dias em /etc (repare no sinal de mais):

$ find /etc -type f -atime +120

Fora isto, pode-se executar comandos para cada resultado encontrado pelo find. Por exemplo: você poderia trocar a permissão de cada arquivo importado, ou imprimi-lo, ou executar qualquer outra coisa. Basta acrescentar o parâmetro -exec ao fim do comando e especificar o que deve ser feito, usando ‘{}’ como nome do arquivo, e terminando o comando com \;

Alguns outros exemplos:

- Acrescentar o bit SGID aos diretórios abaixo de /opt:

$ find /opt/* -type d -exec chmod g+s ‘{}’ \;

- Remover todos os arquivos em /home que terminem com .sql:

$ find /home -type f -name ‘*.sql’ -exec rm -f ‘{}’ \;

Sempre é interessante utilizar o comando find –help ou man find para consultar as outras opções possíveis.

Fonte: man find, tldp.org

PUBLICIDADE

Clique Aqui

Quer continuar por dentro das novidades do Blog Seja Livre? Siga o nosso perfil no TWITTER, curta a nossa página no FACEBOOK ou adicione o Blog Seja Livre nos seus círculos do GOOGLE+. Se você usa ORKUT, nós também estamos lá, inclusive no IDENTI.CA e Linkedin.

  • Alexandre

    Excelentes dicas.Não perco uma.Meu blog de Linux preferido.Estão de parabéns!!!