Alguém poderia explicar como o exit
comando funciona no terminal Unix?
Uma pesquisa man exit
e which exit
não foi útil e me deparei com o seguinte problema.
Depois de instalar os pacotes add-on para Anaconda e PyCharm no meu novo sistema Red Hat, notei que sempre que telefonava exit
para sair de uma sessão do terminal, recebia uma série de erros e o terminal fecha como esperado. Os erros parecem sugerir que minha chamada para exit
está acionando rm ~/anaconda3/.../
e rm ~/PyCharm/....
causando um erro. Todos os diretórios também parecem ser os locais dos pacotes que baixei para esses programas (por exemplo, numpy), veja abaixo.
$ exit
rm: cannot remove ‘~/anaconda3/lib/python3.5/site-packages/numpy/core’: Is a directory
...
...
Resolvido
No meu ~/.bash_logout
arquivo, havia uma linha
find ~ -xdev ( -name *~ -o -name .*~ -o -name core ) -exec \rm '{}' \;
Comentar esta linha parou as mensagens de erro. Parece procurar e excluir todos os arquivos temporários. Mas também tenta encontrar diretórios com a palavra "core" neles e excluí-los também. Esta foi uma predefinição no sistema.
exit
é um apelido?
core
arquivos é porque eles geralmente são arquivos de despejo de memória ( core dumps ) que ocupam espaço, mas raramente são úteis, a menos que você esteja desenvolvendo o software com falha. Nesse caso, ele está tentando excluir um diretório chamado core
, que falha (e é bom que falhe - numpy.core
é essencial para o NumPy!).
ulimit -c 0
o padrão). De qualquer forma, esse find -exec rm
comando não é algo que eu gostaria, mas você pode adicionar -type f
a ele. Você também pode tornar muito mais eficiente a exclusão de vários arquivos usando em -exec rm {} +
vez de ... \;
, para que ele agrupe vários argumentos em uma rm
linha de comando (como xargs)
exit
para sair do que sessão de terminal - ou que isso acontece cada vez que você usaexit
depois disso?