Posso cambiare il nome di `nohup.out`?
Domanda
Quando eseguo nohup some_command &
, l'uscita va a nohup.out
; man nohup
dice di guardare info nohup
che a sua volta dice:
Se lo standard output è un terminale, il standard output di comando viene aggiunto al file 'nohup.out'; se quello non possono essere scritti, si è accodato al file '$ HOME / nohup.out'; e se che non può essere scritto, il comando non viene eseguito.
Ma se ho già un comando usando nohup
con uscita andando a /nohup.out
e voglio eseguire un altro, il comando nohup
, posso reindirizzare l'output in nohup2.out
?
Soluzione
nohup some_command &> nohup2.out&
e voilà.
sintassi più vecchio per la versione Bash <4:
nohup some_command > nohup2.out 2>&1&
Altri suggerimenti
Per qualche ragione, la risposta di cui sopra non ha funzionato per me; Non tornai al prompt dei comandi dopo l'esecuzione di come mi aspettassi, con il finale &. Invece, ho semplicemente provato con
nohup some_command > nohup2.out&
e funziona proprio come voglio io. Lasciando questo qui nel caso in cui qualcun altro è nella stessa situazione. Esecuzione di Bash 4.3.8 per riferimento.
Come i gestori di file punti di i-node (che sono memorizzate in modo indipendente dai nomi dei file) su sistemi Linux / Unix è possibile rinominare il nohup.out
predefinita a qualsiasi altro nome di file in qualsiasi momento dopo l'avvio nohup something&
. Così anche si potrebbe procedere come segue:
$ nohup something&
$ mv nohup.out nohup2.out
$ nohup something2&
Ora something
aggiunge righe a nohup2.out
e something2
a nohup.out
.
Sopra metodi verranno rimossi i dati del file di output ogni volta che si esegue sopra il comando nohup.
Append output in file definito dall'utente è possibile utilizzare >>
al comando nohup.
nohup your_command >> filename.out &
Questo comando aggiungerà tutto l'output nel file senza rimuovere i vecchi dati.