Причина разделения stdout
и stderr
в первую очередь состоит в том, чтобы различать вывод данных программы ( который может храниться в файле, подаваться в конвейер и т. д.) и диагностика и ерунда (которые действительно интересны только человеку-оператору, смотрящему на терминал). (Нет автоматического способа сделать то же самое для ввода, но вы можете сделать это с немного большими трудностями, открыв и прочитав управляющее оконечное устройство, а не stdin
.) Таким образом, если у вас есть выбор между записью что-то в stdout
или stderr
, лучшая эвристика, вероятно, такая: «Будут ли эти данные интересны для другой программы, использующей мой вывод?» Однако это может зависеть от программы и приложения, поэтому не существует единого правила отмены. (Вот почему есть параметры переопределения, такие как 2> & 1
и т. Д. В bash
.)
Большинство приложений не установлены в вашем домашнем каталоге. Файлы конфигурации и данные приложения хранятся в вашем домашнем каталоге.
Так что теоретически вы можете
скопируйте домашний каталог в homebac :cp -r /home/homebac
затем переустановите все свои приложения
затем переместить homebac в дом :mv -r /homebac /home