# ファイルを空にする(基本) cp /dev/null /tmp/a.txt # 複数ファイルを空にする(応用) ¥cp -f /dev/null /tmp/a.txt ¥cp -f /dev/null /tmp/b.txt ¥cp -f /dev/null /tmp/c.txt
複数ファイルを空にする方ですけれども、これは1回のコマンドで空にする方法ではございません。
空にするファイルのリストが手元にありましたらそれらの先頭に「¥cp -f /dev/null」をつけるだけでコマンドがお手軽に完成する、そういう意味ですの。
解説
/dev/null
/dev/null は、ここに書き込まれたデータを全て消しますし、読みだしてもデータを返しません(EOF を返す)。ブラックホールですとか、溶鉱炉ですとか、ゲーム Minecraft の溶岩ですとか、わたくしイメージしていますの。
cp コマンドオプションなど
cp はコピーを行うコマンドです。オプションの -f をつけることにより、確認なしでコピーすることができます。
とあるファイルの内容を消すために /dev/null をかぶせますので、デフォルトの設定では上書きしてもよいか聞かれるのです。これを、打ち消すコマンドですの。
ただし、-f オプションをつけても、なぜか確認を要求されてしまうことがございます。なぜでしょうか?
これは、cp コマンドにエイリアスが設定されており、その内容が上書き確認を強制するものであるからですわ。
[root@localhost ~]# alias alias cp='cp -i' alias l.='ls -d .*' alias ll='ls -l' alias mv='mv -i' alias rm='rm -i' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' [root@localhost ~]#
そこでこのエイリアスを一時的に打ち消すために「¥」をつけるのです。
ファイルを空にするためのコマンド
cp コマンドを使用しましたが、cat でも実現可能とのことですの。/dev/null をファイルにリダイレクトできればよいわけですので、cp でも cat でも問題ありませんわね。
とってもおもしろいですの。
おわりに
他にもいろいろ方法があるようですの。今回、手堅そうだと直感で感じられました、コピーコマンドを使用した方法をノートさせていただきました。
以上です。
「Linux でファイルを空にするコマンド、cp」への4件の返信
[…] Linux でファイルを空にするコマンド、cp | oki2a24 […]
もっと簡単に
:> file.txt
で簡単に空になりますよ。
コメントありがとう存じます。
さらに調べてみて、「:」は「何もせず,0を返す」という意味なのですね、
大変勉強になりました。ありがとう存じます。
[…] Linux でファイルを空にするコマンド、cp | oki2a24 […]