Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

cosa significa 2>&1

393 views
Skip to first unread message

Andrea Malfatti

unread,
May 5, 2009, 5:34:30 AM5/5/09
to
Ciao a tutti,
sto facendo un backup di una directory sul server linux.
Per il backup giornaliero ci pensa uno scriptino lasciato dal
sistemista e lanciato da cron.
Dovendo fare una copia extra di una directory ho preso lo script e lo
ho copiato modificando percorso e directory da mettere in salvo lo
script originale e' il seguente (sono due righe qui la prima e' andata
a capo quindi ho inserito una riga vuota per evidenziare lo stacco
originale)

tar -cvf /dev/st0 /home/applicativo --totals >
/var/log/applicativo/$(date +%y:%m:%d-%H:%M).log 2>&1

mt -f /dev/st0 eject

Con man e internet ho capito quasi tutto del comando mi rimane il
mistero del 2>&1 alla fine della prima riga, io suppongo che serva per
informare che la riga seguente fa parte dello stesso comando o ha
altri significati?

Grazie
--
Ciao
Andrea Malfatti

Simone

unread,
May 5, 2009, 6:41:30 AM5/5/09
to
On 2009-05-05, Andrea Malfatti <andream...@gmail.it> wrote:
>
> Con man e internet ho capito quasi tutto del comando mi rimane il
> mistero del 2>&1 alla fine della prima riga, io suppongo che serva per
> informare che la riga seguente fa parte dello stesso comando o ha
> altri significati?

No, e' una redirezione dello stout, mi sembra. Il comando per non
rompere una riga e' semplicemente \

me (was ohm)

unread,
May 5, 2009, 5:43:08 AM5/5/09
to
On 5 Mag, 11:34, Andrea Malfatti <andreamalfa...@gmail.it> wrote:

> Con man e internet ho capito quasi tutto del comando mi rimane il
> mistero del 2>&1 alla fine della prima riga, io suppongo che serva per
> informare che la riga seguente fa parte dello stesso comando o ha
> altri significati?

serve per redizionare l'output da una coda all'altra. La coda 2
contiene gli errori, mentre la 1 l'output normale. In questo modo hai
sulla stessa coda sia gli errori sia i messaggi di altro genere. Due
code sono utili perché potresti salvare le cose in due file diversi, o
scartare i messaggi di un tipo (>/dev/null), ecc. Probabilmente non
hai trovato nulla in proposito perché è una caratteristica di bash.
Per approfondire man bash oppure http://tldp.org/LDP/abs/html/io-redirection.html.

Ciao
Mattia

Jack

unread,
May 5, 2009, 5:43:45 AM5/5/09
to
On 5 Mag, 11:34, Andrea Malfatti <andreamalfa...@gmail.it> wrote:

> tar -cvf /dev/st0 /home/applicativo --totals >
> /var/log/applicativo/$(date +%y:%m:%d-%H:%M).log 2>&1
>
> mt -f /dev/st0 eject
>
> Con man e internet ho capito quasi tutto del comando mi rimane il
> mistero del 2>&1 alla fine della prima riga, io suppongo che serva per
> informare che la riga seguente fa parte dello stesso comando o ha
> altri significati?

le prime 3 risposte di google sono ababstanza esaurienti.

Cmq:

2>&1 dice di ridirigere lo stderr (gli errori) sullo stdout (standard
output), che in questocaso e' rediretto nel file .log definito prima.

Ciao Jack

Antonio 6sette

unread,
May 5, 2009, 6:02:37 AM5/5/09
to
On 2009-05-05, Andrea Malfatti <andream...@gmail.it> wrote:
> tar -cvf /dev/st0 /home/applicativo --totals >
> /var/log/applicativo/$(date +%y:%m:%d-%H:%M).log 2>&1

il primo > redirige lo stdout nel file di log ... 2>&1 duplica lo
stdout e lo assegna allo stderr ... in pratica ti va a finire
TUTTO l'output nel file di log ...

man dup

ciao ...

--
Never try to teach a pig to sing.
It wastes your time and annoys the pig.

Vide

unread,
May 5, 2009, 7:20:34 AM5/5/09
to
me (was ohm) wrote:

> Probabilmente non
> hai trovato nulla in proposito perchᅵ ᅵ una caratteristica di bash.

Funziona anche con altre shell (oserei dire che ᅵ POSIX, perᅵ non ne sono
certo al 100%).

--
Vide

Andrea Malfatti

unread,
May 5, 2009, 10:26:31 AM5/5/09
to
Il 5 May 2009 11:41:30 +0100, Simone ha scritto:

Grazie a tutti


--
Ciao
Andrea Malfatti

0 new messages