Как скопировать предыдущий вывод из терминала bash в файл

Как скопировать предыдущий вывод из терминала bash в файл

Я знаю, как перенаправить вывод терминала в файл. Например, если я хочу перечислить все файлы в ~/Documents и вывести в файл с именем test.txt, я бы сделал так:

ls ~/Documents > test.txt

Вопрос в том, могу ли я скопировать вывод в test.txt ПОСЛЕ того, как я выполнил команду? Это означало бы, что мне не нужно было бы знать заранее, хочу ли я скопировать вывод в файл. Я хочу сделать что-то вроде этого:

ls ~/Documents

Тогда это:

<bash command for copying standard output to test.txt>

Любая помощь будет оценена по достоинству. Спасибо.

решение1

Вы можете использовать tee, но это не обязательно после выполнения предыдущей команды.

ls ~/Documents | tee test.txt

Запишет вывод в сеанс командной строки обычным образом, а также в test.txt.

В качестве альтернативы, если вы работаете в GNU screen, есть команды для перемещения по буферу прокрутки и копирования/вставки. Подробнее вэтот вопрос суперпользователя.

решение2

вы можете начать сеанс оболочки в окне Emacs, а затем просто скопировать и вставить

(Вы также можете выполнить команду из vi и собрать вывод в текущем буфере vi),

или вы можете скопировать и вставить из окна xterm,

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

или вы можете просто переделать команду.

Надеюсь, это поможет, Клаус.

Связанный контент