Может кто-нибудь объяснить, как exitработает команда в Unix-терминале?
Поиск man exit и which exitне был полезен, и я столкнулся со следующей проблемой.
После установки пакетов add on для Anaconda и PyCharm в моей новой системе Red Hat я заметил, что при каждом вызове exitдля выхода из сеанса терминала я получаю серию ошибок, а затем терминал завершает работу, как и ожидалось. Кажется, ошибки указывают на то, что мой вызов exitвызывает вызов rm ~/anaconda3/.../и rm ~/PyCharm/....вызывает ошибку. Все каталоги также являются местоположениями пакетов, которые я скачал для этих программ (то есть numpy), см. Ниже.
$ exit
rm: cannot remove ‘~/anaconda3/lib/python3.5/site-packages/numpy/core’: Is a directory
...
...
Постановили
В моем ~/.bash_logoutфайле была строка
find ~ -xdev ( -name *~ -o -name .*~ -o -name core ) -exec \rm '{}' \;
Комментирование этой строки прекратило сообщения об ошибках. Похоже, для поиска и удаления всех временных файлов. Но он также пытается найти каталоги со словом «ядро» и удалить их. Это было предустановкой в системе.
exitявляется ли псевдоним?
coreфайлы, заключается в том, что они обычно представляют собой файлы аварийного отключения ( дампы ядра ), которые занимают место, но редко полезны, если вы не разрабатываете программное обеспечение, вызывающее сбой. В этом случае он пытается удалить каталог с именем core, который терпит неудачу (и хорошо, что он терпит неудачу - numpy.coreэто важно для NumPy!).
ulimit -c 0по умолчанию). В find -exec rmлюбом случае, я не хочу эту команду, но вы можете добавить -type fк ней. Вы также можете сделать намного более эффективным удаление нескольких файлов, используя -exec rm {} +вместо этого ... \;, чтобы он объединял несколько аргументов в одну rmкомандную строку (например, xargs)
exitвыходе из этого терминального сеанса - или это происходит каждый раз, когда вы используете егоexitпосле этого?