Могу ли я вызвать pushd / popd и предотвратить печать стека?


16

После вызова pushd/ popdin bash он распечатает текущий стек каталогов. Есть ли способ предотвратить такое поведение, чтобы оно действовало «вполне»? Этот вид шума в команде необычен в инструментах Unix.

Ответы:


23

Я думаю, что такого рода «шум» не редкость, поэтому вы часто делаете это:

pushd > /dev/null

1
Вы также можете сделать функцию, которая в основном переопределит команду и вставит ее, .bashrcнапример:pushd() { builtin pushd $1 > /dev/null; }
violet

5
@jrod: Так как pushdcan может принимать несколько аргументов, вы можете захотеть, чтобы as pushd() { builtin pushd "$@" > /dev/null; }и кавычки обрабатывали имена каталогов с пробелами.
Приостановлено до дальнейшего уведомления.

2
Я бы сказал, что это необычно. Философия Linux заключается в том, чтобы на самом деле ничего не печатать, если все прошло хорошо, кроме вывода программы или встроенной программы, если таковая имеется. Например, cd, ls, aso.
vidstige

1
Некоторые люди делают pushd &> /dev/null. Я бы сказал, не делайте этого, потому что &означает перенаправление как stdout, так и stderr. Обычно вы хотите перенаправить только стандартный вывод.
Шиталь Шах

1
popdтакже генерирует консольный вывод, поэтому подумайте о том, чтобы заставить его замолчать таким же образом
Clare Macrae
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.