既存のファイルを空にする

既存のファイルを空(0バイト)にする方法。ファイルが存在していないのであれば、$ touch filename とやればいいだけ。
既存のファイルを空にするには、次のいずれかで実現可能。

 $ > filename
 $ :> filename
 $ echo -n > filename
 $ cat /dev/null > filename
 $ cat > filename

2例目で “:>” というのが利用されている。「:」をつけることで、リダイレクトのみだとNGなシェルでも動くようになるというコメントを見つけたけど、実際にどんなシェルでNGなのか、とか、そもそも「:」が何なのかは不明。

via : Quick Tip: Delete the Contents of a File without Removing and Recreating It

なお、あるファイルが0 byte(空)かどうかの判定は test -s でOK.(-s FILE : FILE exists and has a size greater than zero)

$ touch empty
$ echo hello > not_empty
$ test -s empty
$ echo $?
1
$ test -s not_empty
$ echo $?
0
Advertisements
Tagged with: , , , ,
Posted in linux, tip
One comment on “既存のファイルを空にする
  1. dummy says:

    「そもそも「:」が何なのかは不明。」
    自分の環境(CentOS)では、「Invalid null command」と出たので、リダイレクト前に何かコマンドがなければいけないということでしょう。

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Archives
  • RT @__apf__: How to write a research paper: a guide for software engineers & practitioners. docs.google.com/presentation/d… /cc @inwyrd 4 months ago
  • RT @HayatoChiba: 昔、自然と対話しながら数学に打ち込んだら何かを悟れるのではと思いたち、専門書1つだけ持ってパワースポットで名高い奈良の山奥に1週間籠ったことがある。しかし泊まった民宿にドカベンが全巻揃っていたため、水島新司と対話しただけで1週間過ぎた。 それ… 4 months ago
  • RT @googlecloud: Ever wonder what underwater fiber optic internet cables look like? Look no further than this deep dive w/ @NatAndLo: https… 4 months ago
  • @ijin UTC+01:00 な時間帯で生活しています、、、 10 months ago
  • RT @mattcutts: Google's world-class Site Reliability Engineering team wrote a new book: amazon.com/Site-Reliabili… It's about managing produc… 1 year ago
%d bloggers like this: