Como faço o CD para o pai do diretório excluído? (bash: cd: ..: Nenhum arquivo ou diretório)

1

Eu estava executando alguns comandos simples no bash, e um dos comandos que executei excluiu meu diretório de trabalho atual (nada destrutivo, eu usei o git para verificar um branch onde esse diretório não existe).

Agora estou preso em um diretório excluído e o cd não parece querer me deixar sair:

$ cd ..
bash: cd: ..: No such file or directory

Qual é a maneira mais fácil de sair deste diretório e voltar ao seu pai?

Observe que o diretório em que estou está armazenado em uma partição NTFS, o que pode explicar por que cd .. está dando um erro, quando esse comportamento não parece ser a norma ao executar o cd de um diretório excluído no Linux.

(Presumivelmente digitando novamente o caminho do diretório absoluto e dando isso para cd funcionará aqui, mas o caminho do diretório pai é realmente longo, e eu sou preguiçoso. Existe uma maneira melhor de chegar ao diretório pai do que redigitar caminho absoluto longo?)

    
por Ajedi32 25.06.2015 / 20:46

4 respostas

1

Como o bash não parece estar reconhecendo caminhos relativos como .. neste caso, você terá que usar um caminho absoluto. Por exemplo:

cd ~/path/to/dir

Para simplesmente voltar ao diretório pai, você pode usar o seguinte, que é muito mais rápido do que digitar novamente o caminho absoluto do diretório em que está:

cd "$(dirname "$(pwd)")"

Aqui está uma função simples que você pode adicionar ao seu arquivo .bashrc para obter essa funcionalidade com um único comando (também suporta um argumento que você pode usar para especificar quantos níveis deseja mover):

# Allow easily going up multiple directories, even when the current directory
# is a deleted folder on an NTFS share.
function up() {
  local dir='pwd'
  local n=${1:-1};
  for ((; n>0; n--)) {
    dir='dirname "$dir"'
  }
  cd "$dir"
}
    
por 25.06.2015 / 22:25
1

cd para um caminho absoluto, não um caminho relativo ao diretório excluído.

Por exemplo cd /home/username/

    
por 25.06.2015 / 20:48
0

Tabulação

Eu sugiro que você leia SSH, a maioria dos shells permitem o uso de guias para simplificar os comandos de digitação.

Se você digitar

cd /h

Em seguida, pressione TAB, ele mostrará uma lista de diretórios que você também pode tabular ou se apenas um diretório existir em / begin com a letra h, como home, ele será preenchido automaticamente para

cd /home

Uma vez que você tenha a noção, pode poupar muito tempo.

Isso resolve você sendo preguiçoso!

Caminho absoluto

Como você sabe, você deve CD para um caminho absoluto.

Uma maneira rápida de fazer isso é executar simples

cd

Como isso irá, na maioria dos sistemas, levá-lo ao diretório padrão do usuário, geralmente / home / $ user

    
por 25.06.2015 / 20:57
0

Não sei por que você está ficando preso

[alexus@wcmisdlin02 ~]$ mkdir 1
[alexus@wcmisdlin02 ~]$ cd 1
[alexus@wcmisdlin02 1]$ rm -rf ../1
[alexus@wcmisdlin02 1]$ cd ..
[alexus@wcmisdlin02 ~]$ 

... mas você pode executar apenas cd ou cd ~

    
por 25.06.2015 / 21:46

Tags