Como combinar comandos ls e cd no Unix

5

ls , me fornece todos os diretórios

ls -trh , me fornece todos os diretórios classificados por data (mais recente por último)

ls -dtrh */ | tail -1 , me dá o nome do diretório mais recente (por data)

É possível de alguma forma incorporar os comandos ls e cd , para que eu possa navegar para o diretório mais recente. Algo logicamente igual a ls -trh | tail -1 | cd , mas funcionando.

    
por Petro Semeniuk 10.12.2010 / 03:46

4 respostas

10
cd "$(ls -trh | tail -1)"

Isso usa a saída do pipeline ls | tail como os argumentos da linha de comando para cd.

EDIT: camh está correto que isso deve dar melhor desempenho, porque head não vai passar pelas linhas que você está ignorando.

cd "$(ls -th | head -1)"
    
por 10.12.2010 / 03:48
2

solução usando backticks:

cd 'ls -th | head -1'
    
por 10.12.2010 / 04:54
2

Eu fiz um alias para meu próprio uso:

alias cdu='cd $(ls -rtd */ | tail -1)'

isto irá colocá-lo no diretório modificado / criado pela última vez em sua posição.

    
por 10.12.2010 / 16:48
1

Use este comando simples:

cd 'ls -t'

O caractere < '> é um caractere de backtick. Não é um apóstrofo.

Isso irá para o diretório mais recente. Experimente.

    
por 10.12.2010 / 17:59