Bash
:>filename.txt 是做什麼的?
:>filename.txt
例如:
root@box$ dd if=/dev/zero of=file.txt count=1024 bs=1024 1024+0 records in 1024+0 records out 1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.00536175 s, 196 MB/s root@box$ ll total 1024 -rw-r--r-- 1 root root 1048576 Nov 15 14:40 file.txt root@box$ :>file.txt root@box$ ll total 0 -rw-r--r-- 1 root root 0 Nov 15 14:40 file.txt
這與一個不同
rm
嗎?它是否比其他類似的歸零文件或刪除文件的方法更快或更慢?
正如您所發現的,這只會清空文件內容(它會截斷文件);這與
rm
實際rm
完全刪除文件不同。此外,如果文件尚不存在,:>file.txt
將實際創建該文件。
:
是一個“什麼都不做的命令”,它將成功退出並且不產生任何輸出,因此它只是清空文件的一種簡短方法。在大多數 shell 中,你可以簡單地做得到>file.txt
相同的結果。它也可能比其他方法(例如可能是外部命令)稍微快echo >file.txt
一點echo
。此外,將在使文件沒有任何內容的位置
echo >file.txt
放置一個空行。file.txt``:>file.txt