Comando cd + CDPATH - Facilitando a navegação de arquivos
Dica publicada em Shell Script / Variáveis
Comando cd + CDPATH - Facilitando a navegação de arquivos
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
echo $CDPATH
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
# cd projetos
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
Agora, o comando está procurando sob o diretório /opt e não sob o local.
Confirmando a troca de diretório:
# pwd
Para que a mudança seja permanente, inclua no seu arquivo ".bashrc" (arquivo oculto no seu diretório HOME), a linha:
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:
Fonte:
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.
Fonte: