Como eu executo um comando do Linux enquanto uso o comando less ou dentro das man pages?

7

Eu geralmente canalizo o comando ls com less e gostaria de executar um comando enquanto ele está paginando. Eu me deparei com um arquivo que gostaria de excluir, então gostaria de executar o comando rm {filename} enquanto ainda paginação. Eu também gostaria de esperar que eu possa usar o mesmo método enquanto lendo man pages. Se não como é diferente?

    
por PeanutsMonkey 19.12.2012 / 09:31

2 respostas

7

Você pode acessar a linha de comando usando bang ( ! ) em menos.

Por exemplo, se você digitar:

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

E o temp.txt deve desaparecer.

Editar: Por padrão, parece que o homem agora usa menos para a página (por algum motivo eu achei que usava more , talvez no passado). Você pode usar o mesmo truque, mas requer o caminho completo (por exemplo, / home / user / ...) para que ele funcione.

Isso ocorre porque chamar man altera o diretório de trabalho atual. Na minha máquina (xubuntu, usando xfce-terminal ) vai para /usr/share/man . Se o seu console exibe o CWD, você pode vê-lo mudar, ou você pode vê-lo de dentro de man digitando:

!pwd
    
por 19.12.2012 / 09:48
4

A maneira genérica de fazer isso é suspender o trabalho atual, executar o comando e retomar o trabalho antigo.

ls | less (leia o texto, observe o nome do arquivo)% Control-z para suspender o comando ativo atual

Você deve obter uma linha semelhante a esta: [1]+ Stopped ls | less
([1] é o número do trabalho.)

rm testfile

fg ou fg %1 (o 1 é o número do trabalho)

Você pode suspender vários processos ao mesmo tempo. Por exemplo, ls | less e Control-z (output: [1]+ Stopped ls | less ) man rm e Control-z (output: [2]+ Stopped man rm ) rm -i testfile*

fg %1 para retomar o trabalho 1 (deixando a página de manual aberta em segundo plano) ou fg %2 para retomar o trabalho 2 (man rm)

Se você tiver vários processos suspensos, poderá listá-los com jobs .

    
por 19.12.2012 / 09:51

Tags