1 2 3 4 5 6 7 | # ファイルを空にする(基本) 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 コマンドにエイリアスが設定されており、その内容が上書き確認を強制するものであるからですわ。
1 2 3 4 5 6 7 8 | [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 […]