Comando Linux · 3 min read · Sep 17, 2025

Tutorial do Comando basename do Linux para Iniciantes (com Exemplos)

Às vezes, enquanto trabalha na linha de comando (especialmente ao lidar com scripts de shell), você pode estar interessado apenas no nome do arquivo, mas o que está disponível para você é o caminho completo do arquivo. Portanto, a necessidade é remover o componente do diretório do caminho.

O comando basename no Linux é uma utilidade usada para extrair o nome base de um arquivo ou caminho de diretório, efetivamente removendo quaisquer componentes de diretório à frente e sufixos opcionais. Quando fornecido com um caminho completo, o basename retorna apenas o nome do arquivo ou o último segmento do caminho, tornando-o útil em tarefas de script e manipulação de arquivos. Por exemplo, dado o caminho /home/user/document.txt, basename retornaria document.txt. Além disso, os usuários podem especificar um sufixo a ser removido, como .txt, deixando apenas document. Este comando simplifica o manuseio de nomes de arquivos e caminhos em scripts, melhorando a automação e agilizando vários processos de gerenciamento de arquivos.

Este tutorial explicará os fundamentos do ‘basename’ usando exemplos fáceis de entender. Mas antes de começarmos, vale a pena mencionar que todos os exemplos aqui foram testados em uma máquina Ubuntu 24.04 LTS.

Comando basename do Linux explicado

O comando basename permite que você remova componentes de nomes de arquivos que não são necessários. A seguir está a sintaxe da ferramenta:

basename NAME [SUFFIX]  
basename OPTION... NAME...

E aqui está o que a página do manual diz sobre isso:

basename - remove diretório e sufixo de nomes de arquivos  

Imprime NAME com quaisquer componentes de diretório à frente removidos. Se especificado, também remove um SUFIXO final.

A seguir estão alguns exemplos no estilo Q&A que devem lhe dar uma boa ideia de como o comando basename funciona.

Q1. Como o comando basename funciona?

Por padrão, se você executar o comando ‘basename’ com um caminho completo para um arquivo como entrada, o comando retorna o nome do arquivo na saída. Por exemplo, quando executei o seguinte comando:

basename /home/himanshu/Downloads/analytics.pdf

Eu obtive a seguinte saída:

analytics.pdf

Q2. O basename pode lidar com múltiplas entradas?

Sim, ele pode. Mas para que isso aconteça, você deve usar a opção de linha de comando -a. Por exemplo, quando executei o seguinte comando:

basename -a /home/himanshu/Downloads/analytics.pdf /home/himanshu/Pictures/test.png

E aqui está a saída que obtive:

analytics.pdf  
test.png

Q3. Como fazer o basename remover a extensão do arquivo também?

Às vezes, você pode querer apenas buscar o nome do arquivo, mas não sua extensão. Isso pode ser feito usando a opção de linha de comando -s (que requer que você passe o sufixo como entrada).

Por exemplo, o seguinte comando:

basename -s .pdf /home/himanshu/Downloads/analytics.pdf

produziu esta saída:

analytics

Q4. Como fazer com que cada linha de saída termine com NUL?

Por padrão, o caractere de nova linha é usado como separador na saída. No entanto, você pode forçar o basename a usar NUL como separador, se desejar. Isso pode ser feito usando a opção de linha de comando -z.

Por exemplo:

basename -az /home/himanshu/Downloads/analytics.pdf /home/himanshu/Pictures/test.png

E aqui está a saída:

analytics.pdftest.png

Então você não vê o caractere NUL aqui. Você precisa redirecionar a saída para um arquivo e depois abrir o arquivo em um editor como o vim. Aqui está o que o vim mostrou:

Conclusão

Como você pode ver, o basename não é um comando muito rico em recursos - suas opções são limitadas, e a maioria delas foi discutida aqui neste tutorial. Uma vez que você tenha terminado de praticar esses, vá para a página do manual da ferramenta para aprender mais sobre ela.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.