Com o bash, existe uma maneira de enviar e exibir o diretório de trabalho atual? Eu tentei escrever, bash;cd dir; ./dostuff;exit;
mas o diretório atual é agora dir
.
66
Existe pushd
epopd
O Bash manterá um histórico dos diretórios que você visita, basta perguntar. O Bash armazena o histórico em uma pilha e usa os comandos pushd e popd para gerenciar a pilha.
Exemplo:
$ pwd; pushd /tmp; pwd; popd; pwd
/home/me
/tmp ~
/tmp
~
/home/me
pushd Saves the current directory on the top of the directory stack and then cd to dir. With no arguments, pushd exchanges the top two directories.
A chamada
bash
inicia um novo subshell, que possui sua própria entrada; nenhum dos outros comandos será executado até que saia. Ao redor dos comandos a serem executados com parens também será iniciado um novo subshell, mas os comandos serão executados dentro dele.fonte
Se você não precisar de vários níveis de histórico de diretório, também poderá:
Comparado a
pushd
/popd
, isso tem a desvantagem de que, secd foo
falhar, você acaba no diretório erradocd -
.(Provavelmente
cd -
é mais útil scripts externos. "Vamos voltar onde eu estava.")fonte
Eu uso o alias para acompanhar as alterações no meu diretório, para 'cd' em algum lugar, basta voltar para onde estava usando 'cd.' Ou voltar dois usando 'cd ..', etc .;
fonte
..cd
robusto o suficiente? parece que ele remove apenas os últimos 10 itens da pilha.