Можно ли показать вывод на терминале при записи вывода команды в файл?
Я запускаю команду сказать 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
Кажется, делать именно то, что вы хотите: вывод в терминал, а также запись в файл.