今天,我們將學習如何從命令行中清除文件的內容,而無需在Linux和Unix樣操作系統中刪除文件本身。如果您要保留文件的權限和所有權,但要刪除其所有內容,則在Linux中排空文件可能會很有用。
目錄
在我們了解如何在不刪除文件的情況下快速清空文件之前,讓我們了解為什麼以及何時有用。
在不刪除文件本身的情況下清除文件的內容可能很重要,原因是多種原因,通常與系統管理,日誌記錄和應用程序管理有關:
不管原因是什麼,如果您曾經想清除文件的內容而不在Linux中刪除文件,則有幾種方法可以這樣做。
以下7種方法將在不刪除文件本身的情況下清除文件的內容。
1。使用>重定向:
Linux和Unix中的操作員用於重定向。與文件名一起使用時,它將命令的輸出重定向到文件。如果沒有給出命令,它將有效地將“無”重定向到文件,從而清除其內容。這是在Linux中清空文件內容,保持文件本身完整的簡單方法。
> file.txt
用自己的file.txt替換。
2。使用截斷命令:
截斷命令專門設計用於更改文件的大小。
要使用截斷命令清除文件的內容,請運行:
截斷-s 0 file.txt
通過使用-s 0選項將大小設置為0字節,您可以有效地從文件中刪除所有內容,而無需觸摸文件的存在或其元數據,例如權限和所有權。
3。使用迴聲命令與重定向:
ECHO命令通常用於顯示作為參數傳遞的文本/字符串行。當與-n標誌(防止newline字符被添加)和將(>)重定向(>)結合使用時,它將毫無意義地替換文件的內容,從而清空文件。此方法與使用直接重定向一樣簡單,但涉及命令(Echo)。
echo -n> file.txt
4。使用 /dev /null使用CP命令:
CP命令用於復製文件或目錄。通過將 /dev /null複製到文件,您實際上是用 /dev /null(始終為空)的內容替換文件的內容,從而清除文件。
cp /dev /null file.txt
此方法對於要求文件可以在相同的權限和所有權的情況下保持訪問的腳本和程序很有用。
5。使用sed命令:
要使用sed命令刪除名為file.txt的文件的所有行,請運行:
sed -id file.txt
這就是命令的每個部分:
6。使用VIM編輯器:
您可以使用VIM編輯器刪除大型文件內容。
使用VIM編輯器打開文件:
vim file.txt
按ESC按鈕,輸入以下內容:
:1,$ d
鍵入:1,VIM中的$ d執行命令來刪除整個文件中的所有行。這是命令中每個部分的分解:
因此,:1,$ d告訴VIM將所有行從第一行刪除到文件的最後一行。執行此命令後,文件將為空。
7。使用DD命令:
DD命令是一個低級數據複製實用程序,可以在文件,設備或分區之間複製和轉換數據。
通過將 /dev /null的數據複製到文件(= file.txt)的文件,您實際上將零字節編寫到文件中,清除其內容。這項任務有點過分殺傷,但對其多功能性很有用。
dd if =/dev/null of = file.txt
在本教程中,我們討論了五個不同的命令行方法,以清空文件的內容,而無需在Linux中刪除文件本身。這些命令使您可以在重置其內容時維護文件的權限,所有權和符號鏈接。
無論您是管理日誌文件,重置配置文件,還是只需要清除文件以供其他用途,這些工具都提供了一種簡單快捷的方法。
以上是如何快速清空文件而不在Linux和Unix中刪除文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!