shell - null用法 - nohup>/ dev null 2>& 1 &




什麼是/ dev/null 2>&1? (5)

>> /dev/null將標準輸出( stdout )重定向到/dev/null ,從而丟棄它。

>>看起來有些多餘,因為>>意味著追加,而>意味著截斷和寫入,並且追加或寫入/dev/null具有相同的淨效果。通常我只是使用>

2>&1將標準錯誤( 2 )重定向到標準輸出( 1 ),然後將其丟棄,因為標準輸出已被重定向。

我在/etc/cron.daily/apf中找到了這段代碼

#!/bin/bash  
/etc/apf/apf -f >> /dev/null 2>&1  
/etc/apf/apf -s >> /dev/null 2>&1  

它刷新並重新加載防火牆。
我不明白>> /dev/null 2>&1部分。

在cron中做這件事的目的是什麼? 它覆蓋了我的防火牆規則。 我可以安全地刪除此cron作業嗎?


/dev/null - 放棄所有寫入的標准文件,但報告寫入操作成功。 1是stdout, 2是stderr。 2>&1將stderr重定向到stdout。 &1表示文件描述符(stdout),否則(如果只使用1 ),則將stderr重定向到名為1文件。 [any command] >>/dev/null 2>&1將所有stderr重定向到stdout,並將所有這些寫入到/dev/null


正如其他人所描述的,寫入/ dev / null消除了程序的輸出。 通常,cron會發送一封電子郵件,用於通過cronjob啟動的進程的每個輸出。 因此,通過將輸出寫入/ dev / null,您可以防止在cron中指定您的地址時被垃圾郵件。


編輯/etc/conf.apf 。 設置DEVEL_MODE="0"DEVEL_MODE設置為1將在5分鐘後添加cron作業以停止apf。


這是悄悄執行程序並隱藏所有輸出的方式。

/dev/null是一個特殊的文件系統對象,拋出寫入它的所有東西。 將流重定向到它意味著隱藏輸出。

2>&1部分錶示“重定向輸出和錯誤流”。 即使你的程序寫入stderr ,該輸出也不會顯示。





io-redirection