Navegue até um diretório que acabou de digitar em um comando

2

Eu não sei se há um comando para isso, mas quando estou trabalhando no terminal, muitas vezes me vejo movendo um arquivo para um diretório e, em seguida, quero cd lá. Por exemplo

mv Keasbey\ Nights /media/ipod/Music/Catch\ 22

cd /media/ipod/Music/Catch\ 22

É uma dor ter que digitar essa segunda parte o tempo todo. Existe uma maneira fácil de fazer isso automaticamente no bash? Eu sei que

cd-

me levará ao meu último diretório, mas isso não é exatamente o que estou procurando. No meu exemplo eu não estive em / media / ipod / Music / Catch \ 22 ainda.

    
por Wilduck 14.12.2009 / 05:16

4 respostas

3

Se você mantiver pressionada sua tecla alt e pressionar ".", o shell irá digitar automaticamente o último argumento no último comando digitado. Na sua situação, para o segundo comando, digite "cd", pressione alt-. E o resto deverá acontecer sozinho.

    
por 14.12.2009 / 05:19
3

Você deseja usar !$ , que se expande para a última palavra usada no comando anterior:

computer:~ zac$ mkdir My\ Subdir
computer:~ zac$ cd !$
cd My\ Subdir
computer:~/My Subdir zac$

Veja a man page de bash, em EXPANSÃO DE HISTÓRIA , Designadores de palavras .

Veja também !* , que se expande para todos menos a primeira palavra.

    
por 14.12.2009 / 05:53
2

Você também pode criar uma função (coloque isso no seu ~/.bashrc ):

function mvcd ()
{
 mv "$1" "$2"
 cd "$2"
}

você o usa com os mesmos argumentos que mv, exceto que você estará nesse diretório depois de executar o comando.

exemplo:

[john@awesome ~]# touch file
[john@awesome ~]# mkdir some_folder
[john@awesome ~]# mvcd file some_folder/
[john@awesome some_folder]# ls
file
[john@awesome some_folder]# pwd
/home/john/some_folder
    
por 14.12.2009 / 05:29
2

Para obter o penúltimo argumento:

Alt - - (alt-minus) seguido por Ctrl - Alt - y

Isso é "argumento-dígito (negativo)" seguido por "yank-nth-arg". Veja man readline para mais informações.

Você pode digitar dígitos após o alt-menos para obter os argumentos anteriores.

Para obter os argumentos contados desde o começo:

Alt - 0 é o comando

Alt - 1 é o primeiro argumento

, seguido por - Alt - y

    
por 14.12.2009 / 06:43

Tags