9

Обычно я передаю команду ls с помощью less и хотел бы выполнить команду во время ее подкачки, например, я натолкнулся на файл, который я хотел бы удалить, поэтому я хотел бы выполнить команду rm {filename} во время подкачки. Я также хотел бы надеяться, что смогу использовать тот же метод при просмотре man-страниц. Если нет, то чем он отличается?

2 ответа2

8

Вы можете получить доступ к командной строке с помощью взрыва (!) в течение меньше.

Так, например, если вы наберете:

touch temp.txt
ls | less
!rm temp.txt

И temp.txt должен быть пропущен.

Изменить: По умолчанию кажется, что человек теперь использует меньше страниц (по какой-то причине я думал, что он использовал more , возможно, в прошлом это было). Вы можете использовать тот же трюк, но для его работы требуется полный путь (например, /home /user /...).

Это потому, что вызов man изменяет текущий рабочий каталог. На моей машине (xubuntu, используя xfce-terminal) он идет в /usr/share/man . Если ваша консоль отображает CWD, вы можете увидеть, как она меняется, или вы можете увидеть это изнутри man , введя:

!pwd
4

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

ls | less (прочитайте текст, обратите внимание на имя файла)
Control-z приостановить текущую активную команду

Вы должны получить строку, похожую на эту:[1]+ Stopped ls | less
([1] номер задания.)

rm testfile

fg или fg %1 (1 - номер задания)

Вы можете приостановить несколько процессов одновременно. Например
ls | less
Control-z (output: [1]+ Stopped ls | less)
man rm
Control-z (output: [2]+ Stopped man rm)
rm -i testfile*

fg %1 чтобы возобновить работу 1 (оставить справочную страницу открытой в фоновом режиме), или
fg %2 чтобы возобновить работу 2 (человек рм)

Если у вас есть несколько приостановленных процессов, вы можете перечислить их с jobs .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .