More (Unix)
# More (Unix)

more è un comando dei sistemi operativi Unix e Unix-like, e più in generale dei sistemi POSIX, che mostra il contenuto di uno o più file di testo (o dello standard input) su di un terminale testuale, visualizzandolo una pagina per volta, permettendo di scorrerlo in avanti e all'indietro (solo in caso di file) e di effettuare ricerche tramite espressioni regolari.

Le implementazioni di more offrono tipicamente all'utente anche la possibilità di eseguire programmi esterni tramite il comando "!", per cui è del tutto sconsigliato il permettere ad utenti ordinari di eseguirlo con privilegi superiori a quelli che già possiedono (ad esempio invocandolo in script eseguiti via sudo).

## Storia

Le prime versioni di more per i sistemi Unix si limitavano a mostrare uno o più file di testo una pagina per volta, visualizzando la scritta --More-- al termine di ogni pagina e attendendo la pressione della barra spaziatrice. Ad esse seguirono rapidamente nuove versioni con maggiori funzionalità, che vennero distribuite per la prima volta con 3BSD nel 1979. Da allora more si è diffuso sui vari sistemi Unix ed anche altri sistemi tra cui MS-DOS ed anche Microsoft Windows, acquisendo via via nel tempo maggiori funzionalità. Lo standard POSIX (ed in seguito la Single UNIX Specification) definisce nel dettaglio le caratteristiche ed il comportamento di more, tuttavia ancora oggi sono in uso implementazioni che non rispecchiano tali standard.

## Sintassi

Dopo aver visualizzato una pagina di testo, more rimane normalmente in attesa di comandi da parte dell'utente. Alcuni di essi possono essere preceduti da un numero che ne influenza il comportamento. La sintassi generale di more è la seguente:

I parametri facoltativi file indicano i nomi dei file di testo da visualizzare. Se non sono specificati, viene mostrato lo standard input.

Il doppio trattino -- (facoltativo) indica che i parametri successivi non sono da considerarsi opzioni.

Le opzioni disponibili variano a seconda delle implementazioni di more, che tuttavia si possono ricondurre a due filoni principali: le implementazioni di more presenti nei sistemi BSD (usate anche nei sistemi GNU/Linux) e quelle previste dallo standard POSIX.

## Opzioni

Tra le opzioni comuni alle varie implementazioni vi sono:

### -c

    Nel presentare le pagine, evita di far scorrere lo schermo.

### -s

    Raggruppa le linee vuote, mostrando una sola linea vuota per ogni gruppo di linee vuote consecutive.

### -u

    Disabilita la gestione particolare di alcuni caratteri di controllo, tipicamente col risultato che il testo che normalmente apparirebbe sottolineato o evidenziato viene visualizzato come testo normale.

Tra le opzioni delle implementazioni di more in stile BSD vi sono anche:

### -d

    Mostra al termine di ogni pagina un messaggio che invita a premere la barra spaziatrice per passare alla prossima pagina oppure il tasto "q" per uscire.

### +num

    Inizia a mostrare il testo partendo dalla sua linea indicata dal numero di linea num.

### +/regexp

    Inizia a mostrare il testo dalla prima occorrenza dell'espressione regolare indicata dal parametro regexp.

### h

    Mostra una pagina di aiuto dei comandi (da help, aiuto)

### q

    Esce da more (da quit, termina).

### [numero_linee]spazio

    Avanza di una pagina, o avanza del numero di linee indicato da numero_linee se specificato

### [numero_pagine]f

    Avanza di una pagina o del numero di pagine indicato da numero_pagine se specificato (da forward, avanti).

### [numero_pagine]b

    Torna indietro di una pagina o del numero di pagine indicato da numero_pagine se specificato (da backwards, indietro). Questo comando è tipicamente disponibile solo se si esaminano dei file, e non se i dati sono letti dallo standard input.

### [num]/regexp

    Ricerca in avanti la prossima (o la num-esima) occorrenza dell'espressione regolare regexp.

### [num]n

    Passa alla prossima (o la num-esima) occorrenza dell'ultima ricerca effettuata.

### !comando

    Avvia il comando esterno specificato.

### v

    Avvia un editor di testo esterno (tipicamente vi) per modificare il file.

## Esempi

Mostra il contenuto del file /var/adm/syslog:

Esegue una ricerca tramite il comando find e visualizza il risultato una pagina per volta (tramite una pipeline software):

## Alternative

Less è un programma del tutto simile a more, ma che offre più funzionalità (ad esempio evidenzia visivamente i termini di ricerca trovati e permette di seguire le aggiunte di nuove linee di testo al termine del file da parte di altri processi).

