Bash: como inserir um subdiretório que foi modificado mais recentemente?

4

Eu sei que posso encontrar um diretório modificado mais recentemente fazendo ls -ltr, mas o último item modificado pode ser um arquivo, não um diretório. Em segundo lugar, ainda tenho que digitar o nome do diretório. Meu nome de diretório é como um código hash, que não é realmente legível e é muito doloroso digitar cada vez.

Qualquer um simples para fazer isso?

    
por CodeNoob 29.03.2012 / 15:55

2 respostas

7
cd "$(ls -dt */ | head -1)"

Salve isso como um alias em ~/.bashrc , por exemplo

alias lcd='cd -- "$(ls -dt -- */ | head -1)"'

e agora lcd em qualquer diretório será alterado para o diretório alterado mais recentemente no diretório atual.

    
por 29.03.2012 / 16:08
2

Adicionando esta função ao meu ~/.bashrc funciona para mim

function lcd(){
cd $(ls -v1td --color=never */ | head -1)
}

Se eu tentar defini-lo como um alias, a expressão será avaliada uma vez quando o shell for iniciado e sempre tentar fazer o cd para o mesmo subdiretório no meu diretório inicial. Sem a instrução --color=never , recebo o erro -bash: cd: mydir/: No such file or directory mencionado em outro comentário.

    
por 11.09.2015 / 10:33