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.
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 caractere /
. Se a cadeia de caracteres
terminar em /
, este caractere 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/proposta.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
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários