Assine a Lista Dicas-L
Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.
O Comando Basename
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 26 de Agosto de 1998
Este comando, quando recebe como argumento o caminho de um arquivo, remove a porção de diretórios, deixando o nome do arquivo.
Um exemplo:
% basename /usr/local/doc/proposta.txt proposta.txt
Em outras palavras, o que este comando faz é retirar a última parte da cadeia de caracteres que não contenha o caracter "/". Se a cadeia de caracteres terminar em "/", este caracter também é removido:
% basename /usr/local/doc/proposta.txt/ proposta.txt
Outra aplicação interessante é o uso deste comando para remoção da extensão. Veja só:
$ basename /usr/local/doc/propost.txt .txt proposta
Agora para que serve isto. O mais óbvio é quando se quer renomear múltiplos arquivos:
#!/bin/sh
for file in `find . -name \*.txt -print`
do
mv $file `dirname $file`/`basename $file .txt`.doc
done
Este script renomeia todos os arquivos que tiverem a extensão .txt, a partir de um certo ponto na árvore de diretórios para um arquivo com o mesmo nome base e extensão .doc.
Apareceu um comando novo neste script, o comando "dirname". Ele faz o contrário do que faz o comando basename:
$ dirname /usr/local/doc/proposta.txt /usr/local/doc
Uma aplicação deste comando eu já mostrei acima. E existem muitas outras. O resto fica para vocês :) Me mandem as idéia.
Referências Adicionais
Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.





