ハードリンクをファイルサイズにカウントしていますか?
質問
Unix タイムスタンプにちなんで名付けられたディレクトリを作成し、ハードリンク システム (rsync の --link-dest) を使用して増分バックアップを作成するバックアップ システムを持っており、通常、最初のバックアップは非常に大きくなり、その後のバックアップはその数分の1の大きさになります。
これは、私の現在のバックアップの出力です。
root@athos:/media/awesomeness_drive# du -sh lantea_home/*
31G lantea_home/1384197192
17M lantea_home/1384205953
17M lantea_home/1384205979
17M lantea_home/1384206056
17M lantea_home/1384206195
17M lantea_home/1384207349
3.1G lantea_home/1384207678
14M lantea_home/1384208111
14M lantea_home/1384208128
16M lantea_home/1384232401
15G lantea_home/1384275601
43M lantea_home/1384318801
すべて正しいように見えますが、しかし、例えば最後のディレクトリを考えてみましょう。
lantea_home/1384318801
:
root@athos:/media/awesomeness_drive# du -sh lantea_home/1384318801/
28G lantea_home/1384318801/
一貫してこの挙動になるのですが、なぜ2回目のduコマンドでディレクトリが28Gと判断されるのでしょうか?
注意 -P と -L フラグを付けても出力は同じままです。
どのように解決するのですか?
ハードリンクは、同じファイル (その inode で表される) への実際の参照です。 元のファイルと、それを指すハード リンクの間に違いはありません。 どちらのファイルも同じステータスを持ちます。 両方 はこのファイルへの参照となります。 どちらかを削除すると、もう一方はそのままの状態で残ります。 最後のハードリンクを削除することだけが、最終的にファイルを削除し、ディスク スペースを解放することになります。
ですから、もしあなたが
du
を見た場合、他の場所に同じ内容を指すハードリンクがあっても気にしません。 単にすべてのファイルのサイズを数えて合計するだけです。 ハードリンクのみ
内の
へのハードリンクは複数回カウントされません。
du
はそれほど巧妙なのです (すべてのプログラムが必ずしもそうである必要はありません)。
ですから、事実上、ディレクトリ A には
du
のサイズが 28G で、ディレクトリ B のサイズが 29G であっても、それらを合わせても 30G しか占めません。
du
に尋ねれば、その数字が返ってくるでしょう。
<イグ
関連
-
ゼロからLinuxのisoイメージを作る方法(グラフィックチュートリアル)
-
LinuxでSteamをダウンロードしインストールする方法
-
Linux ddコマンド詳細説明:データのバックアップ、およびバックアッププロセスでのフォーマット変換のケース
-
deepinシステムからログアウトする方法は?deepinシステムからログアウトし、ユーザーを切り替える方法
-
Centos7のインストールと展開無料のconfluence wikiの(知識ベース)詳細な操作手順
-
TclError: 表示名がなく、$DISPLAY環境変数もない。
-
[解決済み] ビーコン待ちでハングアップしたリーバー
-
[解決済み] フォルダとそのサブフォルダ/ファイルのパーミッションを一括で変更する方法
-
[解決済み] Linuxのディレクトリ内のファイルを再帰的にカウントする
-
[解決済み] ターミナルで現在の日付と時刻を取得し、それに対してターミナルでカスタムコマンドを設定するにはどうすればよいですか?[クローズド]です。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Linux NICがRTNETLINK answersというエラーで起動できない場合、どうすればよいですか?ファイルが存在するか?
-
deepin linuxでroot権限に切り替えるには?Deepinでrootに切り替えるためのヒント
-
Linux 5.10.10 正式版リリース:NULLポインタの不具合修正など。
-
Kali Linuxのマウスを左利き用に設定する方法は?Linuxマウス左利き操作選択方法
-
TclError: 表示名がなく、$DISPLAY環境変数もない。
-
エラーの解決方法 お客様のバージョンは /bin/bash: java: コマンドが見つかりませんでした。
-
[解決済み] IOCTL Linuxデバイスドライバ [終了しました]
-
[解決済み] ディレクトリInodeと通常ファイルInodeの比較
-
[解決済み] 複数のPDFファイルを1つのPDFに結合/変換する【終了】。
-
[解決済み] Unix/Linuxで、ファイルのあるフォルダを別のフォルダにコピーするにはどうしたらいいですか?[クローズド]