Можно ли показать вывод на терминале при записи вывода команды в файл?

Я запускаю команду сказать nmap www.somesite.com>file.txt так что я могу получить вывод в file.txt. Но если я это сделаю, я не смогу увидеть вывод этой команды на терминале. Можно ли сделать его видимым на терминале тоже?

Я знаю использование tee, но я хочу сделать это специально таким образом.

3 ответа

Решение

Невозможно иметь представление командной строки и процесс перенаправления одновременно

Но вы можете использовать следующую команду, чтобы использовать оба процесса в последовательности

nmap www.somesite.com && nmap www.somesite.com > file.txt

Сначала он выполнит команду в терминале, а затем сохранит вывод в виде файла.

Надеюсь это поможет!

tee предназначен для разделения STDIN в файл и обратно STDOUT,

Проще говоря, просто передайте это, например, так:

nmap www.somesite.com | tee file.txt

Текущая принятая альтернатива включает в себя бег nmap дважды, что ужасная идея.
Вам лучше запустить его один раз в файл, а затем вывести файл.

nmap www.somesite.com > file.txt; cat file.txt

Это именно то, что tee для. Почему вы не хотите использовать это?

Альтернативой может быть захват выходных данных и повторение их дважды:

output=$(nmap localhost)
echo "$output"
echo "$output" > somefile.txt

Однако в особом случае nmap вы можете воспользоваться его опцией вывода -ox:

      OUTPUT:
         -oN/-oX/-oS/-oG <file>: Output scan in normal, XML, s|<rIpt kIddi3,
            and Grepable format, respectively, to the given filename.

Например:

nmap -oN somefile.txt localhost

Кажется, делать именно то, что вы хотите: вывод в терминал, а также запись в файл.

Другие вопросы по тегам