quinta-feira, 29 de julho de 2010

Tarefa 3 - Como !?

  • Como Re-Direcionar a Saída de Erro Padrão (STDERR)
No Exemplo do qual estarei mostrando abaixo acho que dá para entender como se usa e para que serve o re-direcionamento de saída de erro padrão:

ls teste 2>> error.log

obs: Em negrito comandos do shell

Aqui no exemplo ocorre o seguinte ele pede para mostrar o arquivo teste caso a arquivo não exista dará o seguinte erro: "ls falhou" a mensagem de erro é anexada no error.log.

Obs2: Modo mais simples que achei para explicar o Re-direcionamento de saíde de erro padrão

  • Como Buscar Registros Únicos (uniq)
O comando para fazer essa função seria o uniq pois tem a função de filtrar uma sequência de linhas de modo a remover as linhas adjacentes com conteúdo repetido. Pode ler as linhas em um arquivo ou então lê-las através de uma canalização.
Em geral é utilizado juntamente com o comando sort para remover repetições de seqüências de linhas previamente ordenadas por este comando usando a saída de outros comandos.

Considerando o arquivo teste.txt abaixo:
Yo
Oi
Yo
Bye
Bye

Um exemplo de uso em conjunto de sort e uniq utilizando um pipe é:

sort teste.txt | uniq

Que produz o resultado:
Yo
Oi
Bye

  • Como Ordenar Registros (sort)
O comando para fazer essa função seria o uniq pois tem a função de ordenar tudo que esta dentro do registro em ordem afabética e numérica.Também podendo alternar essa ordem sendo de trás pra frente tambem com uma de suas funções o: -r, mais também há varias.

Exemplo básico de uso de sort:

cat teste.txt
camelo
ostra
tubarão
macaco

Agora com sort:

sort
teste.txt
camelo
macaco
ostra
tubarão

E com o uso da função -r:

sort -r teste.txt
tubarão
ostra
macaco
camelo

  • Como Usar o Comando find
Um dos comandos mais úteis no gerenciamento de arquivos no terminal do Linux é o comando find. Ele permite realizar e automatizar tarefas que na interface gráfica levariam muito tempo. Executar o comando find sem argumentos faz com que ele liste todos os arquivos do diretório atual e de seus subdiretórios.
Para procurar dentro de um diretório específico, informe o caminho ao find:

find caminho/onde/procurar

O find recebe uma série de parâmetros úteis. É bom lembrar que o diretório de procura precisa ser sempre o primeiro parâmetro. Assim, para procurar por todos os arquivos de extensão .txt no diretório atual, faça:

find -name "*.txt"

E para procurar dentro de um diretório específico, use:

find caminho/onde/procurar -name "*.txt"

O find permite a você construir uma série de expressões de procura e operação com os arquivos, algumas bastante complicadas (e poderosas). Vamos dar uma olhada em algumas bem simples. Para apagar os arquivos, use -delete. Então, para apagar todos os arquivos .txt no diretório atual e em seus subdiretórios, faça:

find -name "*.txt" -delete

Você também pode passar parâmetros numéricos, que funcionam segundo a seguinte lógica:
• Um número sozinho significa exatamente aquele número, por exemplo: 3
• Com um sinal de mais, significa maior do que aquele número: +3
• Com um sinal de menos, significa menor do que aquele número: -3

Para ver uma lista dos arquivos modificados há menos de três dias, faça:

find -mtime -3

Para ver os que foram modificados a mais de três dias, inverta o sinal:

find -mtime +3

As expressões mais comuns para uso com tempo são:
-amin – quando o arquivo foi acessado, em minutos.
-atime – quando o arquivo foi acessado, em dias.
-cmin – quando o arquivo foi criado, em minutos.
-ctime – quando o arquivo foi criado, em dias.
-mmin – quando o arquivo foi modificado, em minutos.
-mtime – quando o arquivo foi modificado, em dias.

Outras expressões bastante úteis são:
-regex: funciona como -name, mas recebe uma expressão regular .
-size: filtra pelo tamanho do arquivo. É um número seguido de uma letra. As mais comuns são: c – bytes, k – kilobytes, M – megabytes e G – gigabytes.
Por fim, você também pode mandar o find executar operações nos arquivos. Foi o que fizemos no início, quando usamos -delete para apagar arquivos. Dentre as operações, uma legal é a -exec.
Quando você coloca -exec numa linha de comando do find, tudo o que vem depois até o próximo “;” é entendido pelo find como um comando, que ele vai executar para cada um dos arquivos encontrados. É obrigatório colocar “;” para terminar o comando, se você se esquecer vai receber o seguinte erro:

$ find -exec ls

find: faltando argumento para `-exec'

Onde você quiser passar para seu comando o nome do arquivo, use {}. Por exemplo, para tirar a permissões de execução de todos os arquivos TXT na busca, você pode fazer:

find -name "*.txt" -exec chmod -x {} ";"

Isso vai executar, para cada um dos arquivos encontrados:

chmod -x
ARQUIVO ;

O último truque que eu gostaria que você guardasse na manga é que você pode combinar o find com o excelente comando grep. Grep faz buscas dentro de um arquivo. Com o parâmetro -l o grep apenas lista o nome do arquivo se a expressão regular de busca for encontrada. Então, para encontrar todos os arquivos python que contém o texto “urllib” você pode fazer:

find -name
*.py -exec grep -l urllib {} ";"

O find, é claro, tem muito mais recursos e opções. Se quiser mesmo se aprofundar, man find.

Nenhum comentário:

Postar um comentário