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.
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