アプリケーションによって継続的に書き込まれている/開かれているファイルが 3GB のスペースに達したときに、そのファイルを切り捨てる/空にする Unix スクリプトを作成しようとしています。私は以下のコマンドがそれを行うことを知っています:
cp /dev/null [filename]
しかし、私はこれを実稼働環境で cron ジョブとして自動的に実行するつもりです。ここに投稿して、これと似たようなことをしているときに問題に直面したかどうかを確認してください。
別の答えを追加するだけで、
: > filename
:
はbashのno-op(POSIX準拠)であるため、これは基本的に、書き込み用にファイルを開いて(もちろん、ファイルを切り捨てます)、すぐに閉じます。
編集:shellterがコメントしたように、リダイレクトを実行するためのコマンドは実際には必要ありません。
$ echo foo > foo.txt
$ cat foo.txt
foo
$ > foo.txt
$ cat foo.txt
$
単純なリダイレクトだけでファイルがクリアされます。
debianで次のコマンドを使用しました
truncate -s 0 filename
それは私には理にかなっているように思えます。もちろん、Unix では、約 50 の異なる方法でこれを行うことができます。例えば、
echo -n "" >filename
cat /dev/null >filename
trunc filename
UNIXのAIXフレーバーで動作します