Como é uma variável de ambiente (o alias tem uma definição diferente em bash
), você precisa avaliá-la com algo como:
cd "${myFold}"
ou:
cp "${myFold}/someFile" /somewhere/else
Mas eu realmente acho mais fácil, se você quiser apenas a facilidade de mudar para esse diretório, para criar um verdadeiro alias (em um dos bash
arquivos de inicialização, como .bashrc
), para que eu possa salvar pressionamentos de tecla:
alias myfold='cd ~/Files/Scripts/Main'
Então você pode apenas usar (sem o cd
):
myfold
Para se livrar da definição, você usa unalias
. A transcrição a seguir mostra tudo isso em ação:
pax> cd ; pwd ; ls -ald footy
/home/pax
drwxr-xr-x 2 pax pax 4096 Jul 28 11:00 footy
pax> footydir=/home/pax/footy ; cd "$footydir" ; pwd
/home/pax/footy
pax> cd ; pwd
/home/pax
pax> alias footy='cd /home/pax/footy' ; footy ; pwd
/home/pax/footy
pax> unalias footy ; footy
bash: footy: command not found
in one of the bash startup files like .bashrc
. Colocar o alias em um arquivo de inicialização adequado garantirá que ele esteja disponível para todas as sessões.Existe uma opção de shell
cdable_vars
:Você pode adicionar isso ao seu
.bashrc
:Observe que substituí o til por
$HOME
; as aspas evitam a expansão do til e o Bash reclama que não há diretório~/Files/Scripts/Main
.Agora você pode usar isso da seguinte maneira:
Não é
$
necessário. Esse é o ponto principal, na verdade - como mostrado em outras respostas,cd "$myFold"
funciona sem a opção shell.cd myFold
também funciona se o caminho emmyFold
contiver espaços, não é necessário fazer aspas.Isso geralmente funciona até mesmo com o preenchimento automático da guia, pois a
_cd
função embash_completion
verificações secdable_vars
está definida - mas nem toda implementação o faz da mesma maneira, então você pode ter que fazer o códigobash_completion
novamente no seu.bashrc
(ou editar/etc/profile
para definir a opção shell).Outros shells têm opções semelhantes, por exemplo Zsh (
cdablevars
).fonte
setopt cdablevars
parece que pode ser, mas eu não sei nada sobre zsh.cdable_vars
Talvez seja melhor usar links
Soft Link
Simbólico ou soft link (arquivos ou diretórios, mais flexíveis e autodocumentados)
Hard Link
Hard link (somente arquivos, menos flexível e não autodocumentável)
Como criar um link para um diretório
Dica : se você não precisa ver o link em sua casa, você pode começar com um ponto. ; então ficará oculto por padrão, então você pode acessá-lo como
fonte
Você pode adicionar qualquer caminho que desejar à tabela de hash de seu bash:
hash -d <CustomName>=<RealPath>
Agora você poderá
cd ~<CustomName>
. Para torná-lo permanente, adicione-o ao seu bashrc script .Observe que esta tabela de hash tem como objetivo fornecer um cache para que o bash não precise pesquisar por conteúdo toda vez que um comando for executado, portanto, essa tabela será limpa em eventos que invalidam o cache, por exemplo, modificação
$PATH
.fonte
zsh
mas não embash
.zsh
apenas, pelo menos no meu sistema Ubuntu.Primeiro, você precisa remover as aspas:
As aspas evitam que o shell expanda o til para seu significado especial de ser seu
$HOME
diretório.Você poderia então usar
$myFolder
um ambiente comouma variável de shell:Para fazer um alias , você precisa definir o alias:
Você pode então tratar isso como um comando:
fonte
export
..bashrc
arquivo de recurso ou em qualquer outro que usar, e ele será definido no shell imediato, mas não em scripts de shell.Primeiro, você precisa
$
acessar o valor de "myFold" para fazer o código na questão funcionar:Para simplificar, você cria um alias em
~/.bashrc
:Não se esqueça de fornecer
.bashrc
uma vez para tornar o alias disponível na sessão bash atual:Agora você pode mudar para a pasta usando:
fonte
Outra opção seria usar um link simbólico. ie:
Depois disso, você pode realizar operações
~/myFold
como:que colocará o arquivo
~/Files/Scripts/Main
. Você pode remover o link simbólico a qualquer momento comrm ~/myFold
, o que manterá o diretório original.fonte
cd myFold
issopwd
, isso mostrará que você está em myFold. Isso é um problema para mim porque os comandos relativos com controle de origem p4 dependem do diretório atual.pwd -P
mas um alias real para um dir também é possível, tente
Dessa forma, você tem uma convenção de nomenclatura comum (para cada par dir / alias) e, se precisar copiar algo do diretório atual para myScripts, não precisa se preocupar com isso.
IHTH
fonte
As respostas anteriores que tentei não permitem a expansão automática (preenchimento automático) de subdiretórios do diretório com alias.
No entanto, se você colocar o diretório do qual deseja criar um atalho na
dirs
pilha ...... você pode digitar
dirs -v
para ver sua posição numérica na pilha:e consulte-o usando esse número para a maioria, senão todos os comandos que esperam um parâmetro de diretório:
Você pode até usar Tabpara mostrar os subdiretórios imediatos do diretório "alias":
fonte
Coloque a seguinte linha no seu myscript
No uso do terminal
fonte