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.pdfEu obtive a seguinte saída:
analytics.pdfQ2. 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.pngE aqui está a saída que obtive:
analytics.pdf
test.pngQ3. 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.pdfproduziu esta saída:
analyticsQ4. 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.pngE aqui está a saída:
analytics.pdftest.pngEntã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.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.