次の提案を見つけました。大きなファイルを削除しようとしていて、プロセスでファイルハンドルが開いている場合は、そのファイルを/ dev / nullにコピーする必要があり、サイズが0に縮小されます。
どのように動作しますか?それともこれが本当に効果があるのでしょうか?
クイック検索の後、「はい、完全に動作します」から「システム全体が爆発します」まで、矛盾する答えを見つけました。誰かが私を実現できますか?
ここでこの質問を見つけました。 https://syedali.net/engineer-interview-questions/
ベストアンサー1
あなたはアドバイスを誤って読んでいます。大きなファイルをにコピーしないでください/dev/null
。これは何らかの方法で影響を与えず、スペースがある場合はキャッシュに入れます。
cp bigfile /dev/null # useless
ファイルを削除してからコピーしないことをお勧めします。これ/dev/null
により、ソース inode がそのまま残り、プロセスでファイルが開いている間はディスク領域が解放されません。
ファイルの内容を1に置き換えることをお勧めします。これにより、デザインタイムサイズが0/dev/null
の場合、/dev/null
ファイルは0バイトに効果的に切り捨てられます。
cp /dev/null bigfile # works
cat /dev/null > bigfile # works
これらのコマンドを実行するためにシェルを使用する場合は必要ありません/dev/null
。単純な空のリダイレクトは同じ効果を持ち、より効率的であるため、cat /dev/null
とにかく機能しません。
: > bigfile # better
> bigfile # even better if the shell used supports it