A variável CDPATH contém os diretórios que devem ser percorridos na procura por subdiretórios, ela atua como o PATH, que contém os diretórios que devem ser percorridos na procura de arquivos.
Para fazer uma comparação, podemos ver o conteúdo dos arquivos:
echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/lib/java/bin:.
echo $CDPATH
.:..:/home/lisandro
Nota: O normal é não aparecer nada como resposta para o CDPATH, pois ele busca só no diretório corrente. Mas, seguindo uma dica de
Júlio Neves, o meu CDPATH já está alterado para buscar no corrente, um diretório acima e no HOME.
Se você executa frequentemente o comando
cd de subdiretórios de um diretório "pai" específico, seria útil poder definir o CDPATH para o diretório pai e executar
cd para os subdiretórios, sem precisar dar o caminho completo com o diretório pai.
Exemplificando:
# pwd
/home/lisandro
# cd projetos
-bash: cd: projetos: No such file or directory
Neste caso, estou no meu diretório padrão, e ao tentar trocar de diretório, a busca é feita dentro da localização atual, mas como o diretório que eu busco está dentro do
/opt, ele não é encontrado.
Exportando
/opt para a variável CDPATH o comando vai funcionar, facilitando nossa vida:
# export CDPATH=/opt
# cd projetos
/opt/projetos
Agora, o comando está procurando sob o diretório
/opt e não sob o local.
Confirmando a troca de diretório:
# pwd
/opt/projetos
Para que a mudança seja permanente, inclua no seu arquivo ".bashrc" (arquivo oculto no seu diretório HOME), a linha:
export CDPATH=/opt
Assim, como na variável PATH, podemos inserir mais de uma entrada de diretório para a variável CDPATH separando as mesmas com dois pontos, como no exemplo abaixo:
export CDPATH=.:~:/etc:/var:/opt
Algumas situações em que esta dica pode ajudar muito:
- Como no exemplo acima, se você trabalha em um diretório personalizado para os seus projetos;
- Administradores Unix, que frequentemente trabalham sob o diretório /etc;
- Usuários que querem acessar facilmente os subdiretórios da sua pasta HOME;
- Bancos de dados Oracle, que trabalham com sua HOME: $ORACLE_HOME, podem ter a CDPATH alterada para esta HOME do Oracle.
Esta é a dica, tomara seja útil.
Fonte: