Inserindo o último diretório modificado

0

Qual comando posso usar para:

  • Insira o último diretório modificado no diretório atual.
  • Se nenhum diretório existir ou for possível entrar, não faça nada.

Estou procurando um alias denominado ca que funcione pelo menos em zsh , mas também em bash e ash , se possível.

    
por Alexander 25.04.2018 / 14:44

2 respostas

0

Aqui está uma solução possível:

alias ca='cd $(find . -maxdepth 1 -type d -printf "%T@ %p\n" | sort -n | tail -1 | cut -d" " -f2-)'

Mas tem os seguintes problemas:

  • Usando a saída diretamente de find sem usar algo como print0 , o que resulta em diretórios com espaços no nome para não serem manipulados corretamente.
  • Inserindo . se esse for o último diretório modificado, em vez de um dos diretórios dentro de . .
por 25.04.2018 / 14:53
0

Isso deve funcionar em zsh e bash até onde eu sei (não é um alias, no entanto):

ca() { 
  local dir newer

  for dir in ./*; do
    if [[ ! -d "${dir}" ]]; then
      continue
    fi
    if [[ "${dir}" -nt "${newer}" ]]; then
      newer="${dir}"
    fi
  done

  if [[ -x "${newer}" ]]; then
    cd -- "${newer}"
  fi
}
    
por 25.04.2018 / 15:11