Como faço para atualizar o diretório no BASH?

21

Eu tenho um diretório contendo arquivos gerados pelo compilador. Durante cada reconstrução, esse diretório é limpo e, após o processo de construção, o ls me fornece uma saída vazia. Depois que eu cd fora do diretório e, em seguida, de volta para ele, funciona corretamente. As perguntas são:

  1. Existe alguma outra maneira mais elegante de atualizar o diretório?
  2. O que realmente acontece quando arquivos são excluídos e recriados? Por que preciso cd para ver o conteúdo real do diretório?
por Roman 16.01.2014 / 08:34

6 respostas

10

Seu script provavelmente está removendo o diretório, e não apenas os arquivos que estão lá. Então, quando você tem cd e o diretório é removido, você faz ls em um diretório que na verdade não existe.

Por cd .. e cd (directory) você sobe e volta para o diretório (recém-criado), e os arquivos estão lá como você espera.

A melhor alternativa é, em vez de cd ing dentro e fora do diretório, é adicionar o nome do diretório ao seu comando ls e executá-lo a partir do diretório pai. Então, ls YourSubdirectory em vez de apenas ls .

    
por 16.01.2014 / 08:40
41

Existe até um caminho mais curto: cd .

    
por 21.03.2015 / 16:57
8

Parece estranho, mas é curto e atualiza o diretório:

cd 'pwd'

Note que são carrapatos, não aspas simples ao redor do pwd

    
por 27.06.2014 / 02:50
2

O que @Kent disse ou: não remova o diretório, mas apenas seu conteúdo, assim você pode ficar no diretório (sem " cd .. && cd - ") e "ls" faz o que você esperava.

    
por 16.01.2014 / 08:47
2

Seria melhor se você não removesse o diretório, mas em vez de cd ..; cd - você poderia fazer cd $PWD .

    
por 16.01.2014 / 10:43
2

crie um alias refresh="cd .. & & cd -" que irá para um diretório e então novamente para o diretório anterior

se tiver certeza de que precisará de uma listagem novamente, você pode ter

alias refresh="cd .. && cd - && ls -lrt"

uma vez que o ailas é criado, armazene o alias em seu arquivo ~ / .bashrc fazendo

alias | grep refresh >> ~/.bashrc

para que esteja disponível na próxima vez que você fizer login.

    
por 24.06.2014 / 18:31