Linux

Linux wget -O /dev/null <http….> 語法

  • September 3, 2022

在我的工作中,我們有一個帶有多個 cron 作業的 Linux 伺服器,其語法wget -O /dev/null緊隨其後是http對文件的請求PHP或其他任何內容。所以像wget -O /dev/null "http://foo.bar.com/file.php".

我已經能夠找出它的各個部分分別意味著什麼:

  • wget:可以在 Linux 終端中使用,無需 GUI 即可從 Web 資源下載文件的應用程序。如果您有特定下載的 URL,例如 WordPress、PyCharm 等,您可以使用 -wget 下載它,而無需實際訪問該站點。
  • wget -O:該-O選項允許您重命名正在下載的文件。因此,如果我正在下載 VS Code 但想重命名它,我可以執行wget -O &lt;alternate name&gt; &lt;url to vscode download file&gt;.
  • dev/null:據我了解,這基本上是不需要的日誌文件的轉儲。如果程序正在從終端執行,並且您不想查看/儲存輸出,則可以將其定向到此處,它將立即自動刪除。基本上是一種為大型程序節省空間的方法。

我只是不知道他們一起做了什麼 - 將它們一起使用是否將PHP文件重命名為/dev/null以便 Linux 擷取並刪除它?這是將文件重命名為空字元串並將結果定向到/dev/null?. 或者更可能是我想念的不同的東西?

先感謝您!

/dev/null是(偽)設備文件,它只是丟棄寫入它的所有內容。那裡不涉及重命名wget -O file,只需打開命名文件(可能創建它)並在那裡寫入。在這種情況下/dev/null,作業系統只是丟棄寫入的數據。

最終結果是從伺服器請求有問題的 URL,無論涉及的腳本在伺服器端執行,並且響應(如果有)被丟棄。

實際上,在設備節點之上*重命名文件會用該文件替換設備節點。*普通使用者無法寫入/dev,但從mv somefile.txt /dev/null長遠來看,以 root 身份執行可能會導致一些“有趣”的效果。

如果沒有該-O選項,wget將在目前目錄中創建一個基於 URL 命名的文件,因此file.php在這種情況下。

引用自:https://unix.stackexchange.com/questions/715920