Familiarizar-se com o layout do seu sistema de arquivos faz parte de se tornar um usuário competente - sempre que você gasta com esse objetivo em mente, não é perda de tempo. No entanto, com isso dito, você pode realmente facilitar a movimentação pelo sistema de arquivos. Observe que no Linux / UNIX, o sistema de arquivos é apresentado como uma única árvore, independentemente de quantos dispositivos compõem seu armazenamento, ao contrário do Windows, onde cada "unidade" (física ou lógica, dependendo da sua configuração) é representada. configuração padrão, por uma árvore independente.
Existem várias maneiras de abordar esse problema. É certamente possível configurar um monte de variáveis de shell que apontam para um diretório diferente. Emitir cd $SomeDir
fará com que o shell expanda a variável $SomeDir
e a substitua na linha de comando para que, quando for finalmente executada, cd
receba o nome do diretório armazenado na variável. Esta é provavelmente a abordagem mais simples, e se você preencher suas variáveis de shell com caminhos absolutos, ela deve funcionar de qualquer lugar no sistema de arquivos.
Você também pode usar links simbólicos para os diretórios de destino (links físicos para diretórios não são suportados na maioria dos UNIXs). No entanto, para que isso seja eficaz, você ainda precisa fornecer informações suficientes no argumento path para permitir que o kernel resolva o symlink. Ou seja, você precisaria fornecer o caminho absoluto para o symlink, ou o suficiente de um caminho relativo para permitir que o kernel encontrasse o link, para que ele pudesse segui-lo.
Uma outra abordagem, que pode ou não estar disponível, dependendo do seu shell, é usar o recurso cdpath
do shell. Isso é suportado em bash
, zsh
, tcsh
e indubitavelmente outros. Com essa técnica, você define a variável de ambiente CDPATH
para uma lista de nomes de diretório separados por dois-pontos, que é pesquisada quando você executa cd
. Se um dos diretórios em $CDPATH
contiver um subdiretório cujo nome corresponde ao passado para cd
, o shell alterará seu diretório de trabalho atual. Por exemplo, se CDPATH
contiver /usr/local
e se o seu sistema tiver um diretório /usr/local/www
, a emissão de cd www
procurará o conteúdo de $CDPATH
, tente localizar um subirectory de /usr/local
chamado www
e, se existir, alterará seu diretório de trabalho atual para /usr/local/www
. Observe que o shell pesquisa os diretórios em $CDPATH
na ordem em que são especificados, portanto, se $CDPATH
contiver vários diretórios que contenham o subdiretório que você passa como argumento para cd
, o primeiro jogo vencerá . Isso me pegou muitas vezes o suficiente para que eu não mais usássemos cdpath
.