Почему не делает grep, использующего трубопровод здесь?

Попробуйте chroot методом: (Используйте все эти команды в корне, или с sudo),

mount /dev/sda3 /mnt/
mount -o bind /dev /mnt/dev
mount -o bind /proc /mnt/proc
cp /proc/mounts /mnt/etc/mtab/
chroot /mnt /bin/bash
grub-install /dev/sda
18
27.04.2016, 21:34
4 ответа
[1120395] Это никак не связано с [1120994] grep[1120995] - это потому, что труба [1120996] |[1120997] перенаправляет стандартный поток вывода [1120998] stdout[1120999], в то время как сообщения [1121000] Permission denied[1121001] находятся в стандартном потоке ошибок [1121002] stderr[1121003]. Вы можете получить желаемый результат, объединив потоки с помощью [1121004]2>&1[1121005] (перенаправить поток, файловый дескриптор которого [1121006]2[1121007], в поток, файловый дескриптор которого [1121008]1[1121009]) так, чтобы [1121010]stderr[1121011], а также [1121012]stdout[1121013]. попадает на вход команды grep[12189], но было бы обычнее просто выбросить [1121014]stderr[1121015], перенаправив его на [1121016]/dev/null[12190]Используя |& вместо 2>&1 |[12191]Если вы посмотрите на Bash man-страницу, вы, вероятно, заметите эту рекламу: [12192]Если используется [1121290]|&[1121291], то стандартная ошибка команды связана со стандартным входом команды2 через трубу; это сокращение для [1121292]2>&1 |[1121293]. [12193]Так что вы также можете использовать эту конструкцию, если хотите соединить STDERR и STDOUT:[12194]
44
27.01.2020, 19:45
[1120391] Ваша команда должна быть:[12188]Find жалуется на разрешения по стандартной ошибке (fd2). Чтобы устранить эти строки, перенаправьте (>) стандарт на битовое ведро (/dev/null).[1120394].
5
27.01.2020, 19:45
[1120497] Пытались ли вы вызвать команду с помощью [1121104] sudo [1121105]?[12245] Если он все еще показывает сообщение, используйте уже упомянутый редирект [1121106] stderr (fd=2) на нирвану (/dev/null) [1121107]: [12246] Еще идеи [1121108] здесь [1121109], удачи![1120502].
2
27.01.2020, 19:45
[1120407]Строки "permission denied" направляются в поток stderr (стандартная ошибка), но вы передаете stdout (стандартная ошибка) по каналу grep. [12195]Вы можете полностью перенаправить stderr с помощью [12196]
4
27.01.2020, 19:45

Теги

Похожие вопросы