:>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
?ファイルを空にしたり削除したりする他の同様の方法よりも速く実行されますか、それとも遅く実行されますか?
ベストアンサー1
rm
ご存知のように、これは単にファイルの内容を空にするだけです(ファイルを切り捨てます)。これは実際にrm
ファイルを完全に削除するのとは異なります。しかも:>file.txt
実際には作るまだ存在しない場合は、このファイルです。
:
正常に終了して出力が生成されない「何もしないコマンド」なので、ファイルを空にする簡単な方法にすぎません。ほとんどのシェルでは、>file.txt
単にこれを行うと同じ結果が得られます。また、外部コマンドなどの他の方法よりも少し速い場合がecho >file.txt
ありますecho
。
echo >file.txt
また、内部に空白行が配置され、ファイルに内容がありません。file.txt
:>file.txt