você está aqui: Home  → Arquivo de Mensagens

catalog

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 03 de Julho de 1997

Às vezes, e se você tem espaço em disco para tanto, você ir acumulando inúmeros arquivos em seu diretório home.

Ou seja, você pode (e certamente vai) se esquecer de coisas importantes que possui e pode também vir a deixar muito lixo se acumular dentro de seu computador.

Uma shell script interessante que pode lhe ajudar a reencontrar velhos amigos e se livrar daquilo que não interessa mais, é o script catalog, incluído nesta dica.

Ele irá gerar uma listagem do conteúdo de seu diretório, ou de qualquer outro, que você poderá então analisar e tomar as decisões adequadas.

Veja um exemplo da saída deste comando:

  [ TT_DB ]
    .   access_table.ind 
    .   access_table.rec 
    .   file_object_map.ind 
   *TT_DB 
  [ adm ]
    . [ acct ]
  foreach: No match.
    .  *acct 
    . [ cron ]
  [ bin ]
    .  *CC_r4 
    .  *Mail 
    .  *Rsh 
    . [ X11 ]
    .   .  *X 
    .   .   X.exp 
  

Os diretórios encontram-se delimitados por "[" e "]". Os pontos significam a profundidade da estrutura de diretórios. Nomes de arquivos precedidos por "*" indicam que o arquivo é executável.

E finalmente, o script catalog. Este script foi escrito por Ken Turkowski, e faz parte de um conjunto enorme de scripts e dicas de configuração de shells compilada por Nancy Blachman e que se encontra hoje em http://ftp.unicamp.br/pub/unix-c/info/unix-tricks.txt.gz.

  #!/bin/csh
  # 
  # catalog - produce complete file structure list from directory
  # Parameters: 	1: directory name (optional)
  # 		2: indentation string (empty on first call)
  # 
  # Produces on standard output the file structure emanating from
  #   the current directory.  Each descent into a subdirectory
  #    is indicated by further indentation.  Directories are indicated
  #    by surrounding [], and executable files are prefaced with a *.
  # 
  if ( $#argv == 0) then
     echo "file structure from directory ""pwd"""
     date
     echo ''
  else
     cd $1
  endif
  foreach i ( * )
     if ( -d $i ) then
  	 echo "${2}[ $i ]"
  	 $0 $i "$2  . "
     endif
  	 if ( "$i" != '*' ) then
  	    if ( -x $i ) then
  	       echo "${2} *$i "
  	    else
  	       echo "${2}  $i "
  	    endif
  	 endif
     endif
  end


Veja a relação completa dos artigos de Rubens Queiroz de Almeida

 

 

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script