cp 大容量ファイルを /dev/null として保存し、サイズをゼロに減らします。

cp 大容量ファイルを /dev/null として保存し、サイズをゼロに減らします。

次の提案を見つけました。大きなファイルを削除しようとしていて、プロセスでファイルハンドルが開いている場合は、そのファイルを/ 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

おすすめ記事