shell清空檔案文件所有字符的多種方法
使用Shell清空檔
Linux 通過shell清空檔的多種方式,常用的方法,如下表
方法 | 描述 |
---|---|
vi 等文字編輯器 | 打開檔,刪除內容后保存即可 |
cat /dev/null > filename | 利用 /dev/null 這一特殊設備和重定向來清空檔 |
: > filename 或 > filename | 清空 filename,如果檔不存在,則創建檔 “:”與“>”之間有無空格均可 “:”充當虛擬佔位符,不產生任何輸出 |
true > filename | 類似 :> filename |
truncate -s 0 filename | truncate 用於調整檔大小,-s 0,設置檔大小為0位元組 |
rf -f filename && touch filename | 通過刪除原檔,再創建同名檔的方式清空檔 |
(1)head -n0 file > file.bak 或 tail -n0 file > file.bak 或 touch file.bak (2)mv file.bak file | 1. 建立空檔 2. 重新命名檔 |
sed -i ‘1,$d’ filename | 使用 sed 清空檔 |
dd if=filename of=filename | 使用dd工具,通過將輸入、輸出檔指定為被清空檔的方式,來清空檔 |
dd if=/dev/null of=filename | 利用 dd 及 /dev/null 設備清空檔 |
dd if=/dev/zero of=filename bs=512 count=0 | 利用 /dev/zero 設備,將輸出檔指定為被清空檔,count 指定為 0 來清空檔 |
/bin/cp -f /dev/null filename | 以防 cp 被作為 cp -i 的別名,使用其絕對路徑 |
通過以上方法,被清空檔的大小均為 0。
通過 echo “” > filename 或 echo > filename
等也可清空檔,但檔大小為 1。
Linux 中清空檔的方法還有很多,主觀推薦使用兩種方法 :> filename 這一方式。 其一是簡潔,其二是 : 是shell內建命令,不需要安裝額外的工具。 > filename 可運行,存在某些 shell 中可能無法正常運行。