cd fora da pasta eliminada

2

Existe uma maneira de cd de um diretório que acaba de ser eliminado (subir um nível na pasta superior que ainda existe?

Muitas vezes acontece-me que eu tenho um console aberto para uma pasta, e então eu excluir a pasta com meus dados de teste temporários e criar outra.

No entanto, ambos cd .. e cd $(pwd)/.. só obter me para a lixeira, e não para o diretório superior quando tento deixar a pasta excluída.

Então, a situação atual é:

$ mkdir -p /home/me/test/p1
$ cd /home/me/test/p1

agora eu apago a pasta p1

$ cd ..
me:~/.local/share/Trash/files$ ...

Agora estou procurando uma maneira de entrar no /home/me/test/ e não na lixeira. Existe tal comando?

    
por Florian Bach 27.03.2016 / 09:45

2 respostas

0

Variável do PWD mantém a definição do caminho atual.

para subir um nível

cd $(dirname $PWD)

expandirá para

cd $(dirname /home/me/foo/bar/baz/deleteddirectory)

que expandem para

cd /home/me/foo/bar/baz/

isto supõe que você exclua apenas um nível de dir.

    
por 27.03.2016 / 11:33
0

O shell armazena o caminho para o diretório de trabalho atual na variável PWD . A menos que configurado de outra forma, esse é o caminho especificado para o shell, mesmo se o diretório tiver sido movido ou se links simbólicos estiverem envolvidos. Então você pode usar isso para mudar para o parente aparente do diretório, mesmo que a localização real do diretório seja diferente. Por exemplo. cd /foo/bar conjuntos PWD para /foo/bar mesmo se bar for um link simbólico ( cd -P faz a shell resolver o link simbólico) e PWD permanece definido mesmo se o diretório for movido ou excluído. / p>

Assim, você pode mudar para o aparente diretório pai pegando PWD e retirando a parte após a última barra:

cd ${PWD%/*}

Se houver espaços em branco ou curingas no caminho para o diretório, você precisará de citações:

cd "${PWD%/*}"

No zsh, isso pode ser abreviado para

cd $PWD:h

Você também pode usar o mais longo, mas talvez mais memorável

cd "$(dirname "$PWD")"

(aspas duplas não são necessárias se nenhum espaço em branco ou caracteres curinga estiverem no nome do diretório).

    
por 28.03.2016 / 00:14