Вы можете использовать мою функцию "cd history" с. http://fex.belwue.de/fstools/bash.html
Она запоминает каждый каталог, в котором вы были, и с помощью "cdh" вы увидите список последних 9 директорий. Просто введите номер и вы вернетесь в в эту директорию.
Пример:
framstag@wupp:/: cdh 1: /usr/local/bin 2: /var 3: / 4: /tmp/135_pana/1280 5: /tmp/135_pana 6: /tmp/weihnachtsfeier 7: /tmp 8: /local/home/framstag select: 4 framstag@wupp:/tmp/135_pana/1280:
cdh работает с autocd aka "cd без cd": вам не нужно набирать cd или pushd.
Да, отображать сообщение на stderr
, когда используются неправильные аргументы.И если это также приводит к завершению работы приложения, выйдите с ненулевым статусом выхода.
Вы должны использовать стандартный поток ошибок для диагностических сообщений или для взаимодействия с пользователем. Диагностические сообщения включают сообщения об ошибках, предупреждения и другие сообщения, которые не являются частью вывода утилиты, когда она работает правильно («правильно» означает, что ничего особенного не происходит, например, файлы не найдены или что-то еще).
Многие оболочки (все?) Отображают запросы, то, что вводит пользователь, и меню и т. Д. На stderr
, так что перенаправление stdout
не помешает вам взаимодействовать с оболочкой в осмысленный способ.
Следующее взято из сообщения в блоге по этой теме:
Это цитата Дуга Макиллроя, изобретателя каналов Unix, объясняющего, как появился
stderr
. «v6» относится к версии конкретной версии исходной операционной системы Unix, выпущенной в 1975 году.Все программы помещали диагностику на стандартный вывод. Это всегда вызывало проблемы, когда вывод перенаправлялся в файл, но становился невыносимым, когда вывод отправлялся ничего не подозревающему процессу. Тем не менее, не желая нарушать простоту модели «стандартный ввод-стандартный-вывод», люди терпели такое положение вещей до версии 6. Вскоре после этого Деннис Ричи разрубил гордиев узел, представив стандартный файл ошибок. Этого было недостаточно. С помощью конвейеров диагностика может происходить из любой из нескольких программ, работающих одновременно. Диагностика необходима, чтобы идентифицировать себя.
- Дуг Макиллрой, "Читатель UNIX-исследований: Аннотированные выдержки из Руководства программиста, 1971-1986"
"идентифицировать себя" означает просто сказать: "Эй! Это я говорю! неправильно: [...] ":
$ ls nothere
ls: nothere: No such file or directory
Выполнение этого на stderr
предпочтительнее, поскольку в противном случае это могло бы быть прочитано тем, что читало на stdout
(но мы не Мы все равно не сделаем это с ls
, не так ли?).
Из Спецификации POSIX для стандартных потоков:
При запуске программы должны быть предварительно определены три потока, и их не нужно открывать явно: стандартный ввод (для чтения обычного ввода ), стандартный вывод (для записи обычного вывода) и стандартный вывод ошибок (для записи диагностического вывода ).
Другими словами, ошибки, отладочная информация и все, что попадает в диагностическую категорию, попадает в stderr
.
См. Соответствующий вопрос для получения дополнительной информации: Отчеты о ходе выполнения / информация журнала относятся к stderr или stdout?