
Daemonio
(usa Slackware)
Enviado em 21/05/2010 - 19:08h
Você está falando dessa dica?
http://www.vivaolinux.com.br/dica/Combinando-find-com-a-variavel-PATH
Bem, o find recebe uma lista de diretórios onde será feita a pesquisa.
O seu objetivo é procurar nos diretórios que estão na variável PATH. Só que os diretórios estão separados por ':', e por padrão, os argumentos são separados por espaço no bash.
Por exemplo, você não pode fazer:
$ find /usr/share:/bin:/sbin -iname zless
você tem que fazer:
$ find /usr/share /bin /sbin -iname zless
Então o que o autor da dica fez com o tr foi isso: trocar o ':' por espaço, para que os diretórios sejam entendidos como parâmetros pelo find.
Logo:
$ find $(echo $PATH | tr ":" " ") -iname zless
Procura por zless (ou Zless, zLeSs, etc) nos diretórios de seu PATH.
Se você quiser saber mais, o separador de parâmetros fica na variável $IFS, que por padrão tem o espaço e o nova linha como valor. Se você alterar o valor dessa variável para ':' então seu find pode ler seu PATH normalmente, veja só:
$ OLD_IFS=$IFS # salva o IFS
$ IFS=':'
$ find $(echo $PATH) -iname zless
$ IFS=$OLD_IFS # restaura o IFS
Acho que é isso xD
t+