я хочу сохранить результат одной команды в файле

Как насчет того, чтобы подать список файлов в архиве к xargs rm?

Это было бы tar -tf tarbomb.tar | xargs rm или unzip --list zipbomb.zip | xargs rm.

3
03.05.2011, 13:01
3 ответа

Отбросьте 2 от Вашей команды и просто используют > как оператор перенаправления.

При помощи 2> Вы перенаправляете поток сообщений об ошибках (STDERR) в файл; то, что это кажется, что Вы хотите, является регулярным потоком вывода (STDOUT).

cppcheck abc.cpp > abc.txt

Если Вы хотите, чтобы оба потока перешли к Вашему файлу, можно соединиться 2 (поток сообщений об ошибках) к 1 (поток стандартного вывода) их как это:

cppcheck abc.cpp > abc.txt 2>&1

Или используйте синтаксис ярлыка, лежавший предложенный просто захватить все.

6
27.01.2020, 21:08
  • 1
    Хороший. Я никогда не видел 2> прежде. Изучайте что-то новое каждый день здесь. :) –  boehj 03.05.2011, 15:04

Вероятно, необходимо перенаправить stdout, а также stderr в файл

cppcheck abc.cpp  &>abc.txt
4
27.01.2020, 21:08
  • 1
    @lain, который этот ответ точно назад. При чтении вопроса, Вы будете видеть, что он ловит просто stderr вместо stdout. –  Caleb 03.05.2011, 13:00
  • 2
    @Caleb: Поскольку Вы видите, что я понял, что и отредактировал его, но команда является тем же –   03.05.2011, 13:03
  • 3
    @lain... и я изменил свой голос :) Я знаю, что решение работало, но объяснение вводило в заблуждение кому-то, у кого ясно нет схватывания по io проблемам перенаправления. –  Caleb 03.05.2011, 13:14

Caleb прав относительно использования>, но можно также использовать tee управляйте, требуется ли видеть журналы в то же время, что и Вы сохраняете затем в файл.

cppcheck abc.cpp | tee my.file.txt

И это должно работать с 2> &1 также.

cppcheck abc.cpp 2>&1 | tee my.file.txt
3
27.01.2020, 21:08
  • 1
    Почему downvote? не любить команду мишени? –  Johan 03.05.2011, 13:10
  • 2
    Downvote не был я, но он уравновешен теперь :) Хорошее дополнительное предложение. Я мог бы предложить описать его с этим пользователи точная команда хотя, таким образом, они видят лучше, как Ваше предложение вписывается в большое изображение. –  Caleb 03.05.2011, 13:17
  • 3
    10 МБ, я не был бы downvote это, поскольку это не неправильно, но вероятно потому что использование мишени только для перенаправления является лишним. кладите для первого удара только действительно помогает, если у Вас есть больше команд, переданных по каналу после него. –  hometoast 03.05.2011, 18:04
  • 4
    @hometoast: Вы используете его для "отлаживания" длинной цепочки канала. Таким образом, позже можно ли посмотреть на вывод от различных этапов? Пример "находит / |, кладут a.txt для первого удара | grep-v, мусорное ведро | кладут b.txt для первого удара" и затем сравнивают a.txt и b.txt для наблюдения то, что grep-v удалил в середине? Или что Вы имели в виду? –  Johan 03.05.2011, 18:54
  • 5
    @Johan: ах. Я вижу то, что Вы имеете в виду теперь. Умный. –  hometoast 03.05.2011, 20:33

Теги

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