set alias para um diretório

0

Estou tentando definir um alias que me permitiria rapidamente cd nos seguintes diretórios:

/home/user/asreera/Aravind/sample/src
/home/user/asreera/Aravind/sample2/src

Primeiro, defino a variável:

set use=/home/user/asreera/Aravind/

Então eu configurei alias:

alias mov 'cd $use/*/src'

Meu uso pretendido é:

mov sample

Deve ir ao diretório /home/user/asreera/Aravind/sample/src .

No caso de mov sample2 , ele deve ir para o diretório /home/user/asreera/Aravind/sample2/src

Quando eu uso esse alias, estou recebendo um erro cd:too many arguments

Alguém poderia me dizer o que estou fazendo de errado nisso?

    
por Aravind 30.05.2016 / 08:53

1 resposta

2

Você deve usar:

alias mov 'cd "$use"/\!*/src'

!* no alias csh / tcsh resolve todos os argumentos do comando que está sendo executado (por exemplo, o que você coloca depois de mov ).

Veja Escrevendo aliases em csh e tcsh para outras opções:

  • !! é toda a linha de comando
  • !* é todos os argumentos do comando
  • !:1 é o primeiro argumento do comando
  • !:2 é o segundo argumento do comando
  • !$ é o último argumento do comando

Cada um deve ter um escape de \ .

Could someone please tell me what I'm doing wrong in this?

Quando você executa:

mov sample

O Shell resolve o alias para:

cd $use/*/src sample

Em seguida, expande a variável e executa:

cd /home/user/asreera/Aravind//*/src sample
O comando

cd reclama que tem muitos argumentos.

    
por 30.05.2016 / 09:42