Posso adicionar um atalho para substituir um caminho no Linux?

33

Por exemplo, eu sempre vou para este caminho:

/ usuário / algo / algumas pastas / em algum lugar

mas eu não quero digitar

cd / usuário / algo / algumas pastas / em algum lugar

no terminal o tempo todo, posso ter uma mão curta para fazer isso? por exemplo, posso fazer algo como

cd commandPlace

substituir o caminho?

user28167
fonte

Respostas:

32

Você pode usar a variável de ambiente CDPATHpara isso. Na página do manual do Bash:

CDPATH

O caminho de pesquisa para o comando cd. Esta é uma lista de diretórios separados por dois pontos, em que o shell procura os diretórios de destino especificados pelo comando cd. Um valor de amostra é ".: ~: / Usr".

No seu caso, você pode definir

export CDPATH=.:/user/something/somefolders

~/.bashrce, em seguida, digitar cd somewhereo levaria a você /user/something/somefolders/somewhere(assumindo que não haja um diretório nomeado somewhereno diretório atual).

Como alternativa, se você não quiser consultar a pasta somewherepor seu nome real, poderá criar um diretório oculto que contenha um link simbólico /user/something/somefolders/somewherecom o nome que deseja usar. Também pode conter links para outros diretórios que você visita com freqüência. Em seguida, defina CDPATHpara incluir o caminho para esse diretório oculto. Embora observe que, com esse método, se você cd somewheree então cd .., você terminará no diretório oculto. Isso pode ou não ser um problema para você.

David Z
fonte
41

Dois atalhos que eu uso o tempo todo para coisas como esta:

Aliases

alias somedir = 'cd / home / john / www / something /'

Então você pode digitar somedirpara ir para esse diretório. Adicione-os ao seu .bashrc.

Links Simbólicos

ln -s / long / path / to / some / other / pasta / atalho

Isso criará um arquivo no /shortcutqual os links para /long/path/to/some/other/folder. Então você pode digitar cd /shortcut. A ressalva disso é que ele preenche seu diretório raiz (ou qualquer diretório em que você coloca os links) rapidamente. Eu prefiro pseudônimos.

John T
fonte
bom John!
Gob00st
deveria ser ln -s /long/path/to/some/other/folder /shortcutquando eu fiz o contrário, criei o atalho no local para o qual queria criar o link. Enviei uma edição para atualizá-la.
Elias
1
Que tal um diretório na raiz com um nome abreviado, por exemplo, /sle criar atalhos lá? (ie ln -s /long/path/to/some/other/folder /sl/shortcut? Sem confusão na raiz, além de um lembrete visual de que o caminho do seu prompt é um link simbólico.
RolfBly
14

Costumo usar a pesquisa interativa bash o tempo todo. Tente. Chame-o com ctrl + r e comece a digitar parte do seu caminho, como em algum lugar . Provavelmente o seu comando cd irá aparecer. :)

Janne Pikkarainen
fonte
9

Veja o comando "alias".

No csh:

alias commandplace "cd /user/something/somefolders/somewhere"

Em sh:

alias commandplace="cd /user/something/somefolders/somewhere"

Mas eu gosto da solução de link simbólico:

ln -s /user/something/somefolders/somewhere ~/commandplace 

Nota: ln recebe argumentos na mesma ordem que cp.

Robert
fonte
9

Outra coisa que você pode fazer é armazenar o caminho em questão em uma variável de ambiente. Adicione estas linhas ao seu ~/.profilearquivo:

somedir=/user/something/somefolders/somewhere
export somedir

Você pode acessar o diretório com

cd "$somedir"
Terdon
fonte
1
Essa é de longe a melhor solução, porque você pode usar a variável para qualquer comando. Se você atribuir um alias, então, que alias é sempre ligada a um comando como cd ...
BdN3504
Esta é a solução que eu esperava que existisse e estivesse procurando. Pelas razões declaradas pelo BdN3504.
Inspirednz
1

O aliasmétodo descrito por outras respostas é a rota mais direta.

Outra opção é tentar o salto automático , descrito como "Um cdcomando que aprende". Mais descrição nesta postagem do LifeHacker .

Doug Harris
fonte