<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Jdupes on KnightLi的博客</title>
        <link>https://knightli.com/zh-tw/tags/jdupes/</link>
        <description>Recent content in Jdupes on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-tw</language>
        <lastBuildDate>Sat, 20 Jun 2026 19:09:03 +0800</lastBuildDate><atom:link href="https://knightli.com/zh-tw/tags/jdupes/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>群暉和飛牛 NAS 如何用 Btrfs &#43; jdupes CoW 去重節省空間</title>
        <link>https://knightli.com/zh-tw/2026/06/20/synology-fn-os-btrfs-jdupes-cow-dedup/</link>
        <pubDate>Sat, 20 Jun 2026 19:09:03 +0800</pubDate>
        
        <guid>https://knightli.com/zh-tw/2026/06/20/synology-fn-os-btrfs-jdupes-cow-dedup/</guid>
        <description>&lt;p&gt;如果 NAS 裡經常保存影視檔案、備份包、安裝映像、照片匯出目錄，重複檔案很容易不知不覺占掉幾百 GB 甚至幾 TB。傳統做法通常是刪除重複檔案，或者把重複檔案改成硬連結，但這兩種方式都不太適合 NAS 的長期儲存。&lt;/p&gt;
&lt;p&gt;更穩妥的方式是：在支援 CoW 的檔案系統上，用 &lt;code&gt;jdupes&lt;/code&gt; 做區塊級去重。&lt;/p&gt;
&lt;p&gt;對群暉和飛牛這類 NAS 使用者來說，如果儲存卷使用的是 Btrfs，就可以利用 &lt;code&gt;jdupes -B&lt;/code&gt; 呼叫檔案系統底層能力，讓重複檔案共享同一份物理資料區塊。檔案在目錄裡看起來仍然是獨立檔案，但底層只占一份空間。&lt;/p&gt;
&lt;h2 id=&#34;cow-去重和硬連結有什麼區別&#34;&gt;CoW 去重和硬連結有什麼區別
&lt;/h2&gt;&lt;p&gt;硬連結的邏輯是：多個路徑指向同一個 inode。&lt;/p&gt;
&lt;p&gt;這確實能省空間，但也有明顯問題：如果某個程式修改了其中一個檔案，其他硬連結路徑看到的內容也會一起變化。對媒體庫、同步目錄、照片管理和備份目錄來說，這種行為很容易埋坑。&lt;/p&gt;
&lt;p&gt;Btrfs 的 CoW 去重不同。&lt;/p&gt;
&lt;p&gt;它的邏輯是：多個獨立檔案可以共享相同的資料區塊；一旦其中一個檔案被修改，檔案系統會把被修改的部分寫到新的資料區塊，其他檔案不受影響。&lt;/p&gt;
&lt;p&gt;也就是說，CoW 去重後：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;檔案路徑仍然互相獨立；&lt;/li&gt;
&lt;li&gt;刪除其中一個檔案不會刪除其他檔案；&lt;/li&gt;
&lt;li&gt;修改其中一個檔案不會改動其他檔案；&lt;/li&gt;
&lt;li&gt;重複部分只在磁碟上占用一份空間。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這正是 &lt;code&gt;jdupes -B&lt;/code&gt; 比硬連結去重更適合 NAS 的原因。&lt;/p&gt;
&lt;h2 id=&#34;適合使用的場景&#34;&gt;適合使用的場景
&lt;/h2&gt;&lt;p&gt;比較適合跑 CoW 去重的目錄包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;影視庫中重複下載的劇集和電影；&lt;/li&gt;
&lt;li&gt;不同目錄裡的安裝包、ISO、壓縮包；&lt;/li&gt;
&lt;li&gt;多次匯出的照片或影片素材；&lt;/li&gt;
&lt;li&gt;備份軟體產生的重複大檔案；&lt;/li&gt;
&lt;li&gt;手工整理時複製出來的臨時目錄。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;不太建議一上來就對整個系統卷執行。更穩的做法是先選一個使用者資料目錄，比如：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/volume1/video/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/volume1/photo/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/volume1/data1/aaa/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;先小範圍測試，確認命令、排除規則和節省效果都符合預期，再擴大範圍。&lt;/p&gt;
&lt;h2 id=&#34;基礎命令&#34;&gt;基礎命令
&lt;/h2&gt;&lt;p&gt;在 Btrfs 目錄上使用 &lt;code&gt;jdupes&lt;/code&gt; 做 CoW 去重，核心參數是 &lt;code&gt;-B&lt;/code&gt;：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;jdupes -r -B &lt;span class=&#34;s2&#34;&gt;&amp;#34;/volume1/data1/aaa/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;參數含義：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-r&lt;/code&gt;：遞迴掃描子目錄；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-B&lt;/code&gt;：對找到的重複檔案執行 Btrfs/CoW 去重，而不是建立硬連結；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;/volume1/data1/aaa/&amp;quot;&lt;/code&gt;：要掃描的目標目錄。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這裡最關鍵的是 &lt;code&gt;-B&lt;/code&gt;。它會讓 &lt;code&gt;jdupes&lt;/code&gt; 呼叫檔案系統支援的去重能力，通常對應 reflink、clone 或 dedupe range 這類底層介面。&lt;/p&gt;
&lt;h2 id=&#34;群暉建議排除-eadir-和-recycle&#34;&gt;群暉建議排除 @eaDir 和 #recycle
&lt;/h2&gt;&lt;p&gt;在群暉上，不建議把 &lt;code&gt;@eaDir&lt;/code&gt; 和 &lt;code&gt;#recycle&lt;/code&gt; 放進掃描範圍。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;@eaDir&lt;/code&gt; 是群暉系統產生的隱藏目錄，裡面通常保存縮圖、媒體索引、延伸屬性和套件相關快取。它數量多、檔案小，掃描成本高，收益很低，還可能干擾群暉自己的索引服務。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#recycle&lt;/code&gt; 是共享資料夾的資源回收筒。裡面的檔案本來就準備被清理，對它們去重意義不大，還會讓結果變得難判斷。&lt;/p&gt;
&lt;p&gt;所以在群暉上，更推薦把這兩個目錄排除掉。&lt;/p&gt;
&lt;p&gt;不同版本的 &lt;code&gt;jdupes&lt;/code&gt; 對 &lt;code&gt;-X&lt;/code&gt; 參數支援不完全一樣。有些教學會寫成：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;jdupes -r -B -X &lt;span class=&#34;s2&#34;&gt;&amp;#34;req:*/@eaDir/*&amp;#34;&lt;/span&gt; -X &lt;span class=&#34;s2&#34;&gt;&amp;#34;req:*/#recycle/*&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;/volume1/data1/aaa/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;但部分群暉環境會報錯：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Invalid extfilter filter name was specified
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果你的 &lt;code&gt;jdupes -X&lt;/code&gt; 說明裡顯示支援 &lt;code&gt;nostr:text_string&lt;/code&gt;，可以使用更相容的寫法：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;jdupes -r -B -X nostr:/@eaDir/ -X nostr:/#recycle/ &lt;span class=&#34;s2&#34;&gt;&amp;#34;/volume1/data1/aaa/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;含義很直接：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-X nostr:/@eaDir/&lt;/code&gt;：排除路徑中包含 &lt;code&gt;/@eaDir/&lt;/code&gt; 的檔案；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-X nostr:/#recycle/&lt;/code&gt;：排除路徑中包含 &lt;code&gt;/#recycle/&lt;/code&gt; 的檔案。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果目標路徑包含中文或空格，一定要加雙引號：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;jdupes -r -B -X nostr:/@eaDir/ -X nostr:/#recycle/ &lt;span class=&#34;s2&#34;&gt;&amp;#34;/volume1/photo/视频工作/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;飛牛-nas-上怎麼理解&#34;&gt;飛牛 NAS 上怎麼理解
&lt;/h2&gt;&lt;p&gt;飛牛 NAS 如果使用 Btrfs 儲存池，思路和群暉類似：重點仍然是確認目標目錄位於 Btrfs 檔案系統，並使用 &lt;code&gt;jdupes -B&lt;/code&gt; 做 CoW 去重。&lt;/p&gt;
&lt;p&gt;差別在於系統隱藏目錄名稱可能不同。群暉常見的是 &lt;code&gt;@eaDir&lt;/code&gt; 和 &lt;code&gt;#recycle&lt;/code&gt;，飛牛需要按實際目錄結構決定排除規則。&lt;/p&gt;
&lt;p&gt;建議先執行：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;find &lt;span class=&#34;s2&#34;&gt;&amp;#34;/你的目标目录&amp;#34;&lt;/span&gt; -maxdepth &lt;span class=&#34;m&#34;&gt;2&lt;/span&gt; -type d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;看一下是否存在系統快取、資源回收筒、索引目錄或應用資料目錄。真正值得去重的通常是使用者資料裡的大檔案，而不是系統產生的小快取。&lt;/p&gt;
&lt;h2 id=&#34;如何確認-cow-去重成功&#34;&gt;如何確認 CoW 去重成功
&lt;/h2&gt;&lt;p&gt;不要只看 &lt;code&gt;ls -l&lt;/code&gt;。CoW 去重後，檔案邏輯大小不會變，目錄裡看起來還是多個完整檔案。&lt;/p&gt;
&lt;p&gt;更可靠的驗證方式有三種。&lt;/p&gt;
&lt;h3 id=&#34;1-看-jdupes-輸出&#34;&gt;1. 看 jdupes 輸出
&lt;/h3&gt;&lt;p&gt;執行過程中，如果看到類似輸出，通常說明重複檔案已經被識別並處理：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[SRC] /volume1/data1/aaa/1/file.mkv
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;====&amp;gt; /volume1/data1/aaa/2/file.mkv
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;====&amp;gt; /volume1/data1/aaa/3/file.mkv
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;[SRC]&lt;/code&gt; 表示源檔案，&lt;code&gt;====&amp;gt;&lt;/code&gt; 後面的檔案表示被合併到同一份底層資料區塊上。檔案仍然獨立存在，但物理空間已經被壓縮。&lt;/p&gt;
&lt;h3 id=&#34;2-對比-btrfs-空間變化&#34;&gt;2. 對比 Btrfs 空間變化
&lt;/h3&gt;&lt;p&gt;在去重前後分別執行：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo btrfs filesystem usage /volume1/data1/aaa/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;重點看這幾個欄位：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Used:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Free (estimated):
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Data,single: Used:
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果去重生效，一般會看到：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Used&lt;/code&gt; 減少；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Data,single: Used&lt;/code&gt; 減少；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Free (estimated)&lt;/code&gt; 增加。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;比如去重前 &lt;code&gt;Used&lt;/code&gt; 是 &lt;code&gt;8.44TiB&lt;/code&gt;，去重後下降到 &lt;code&gt;8.20TiB&lt;/code&gt;，哪怕只減少幾十 GB，也說明 CoW 去重已經在釋放物理空間。&lt;/p&gt;
&lt;h3 id=&#34;3-使用-compsize-查看真實占用&#34;&gt;3. 使用 compsize 查看真實占用
&lt;/h3&gt;&lt;p&gt;如果系統能安裝 &lt;code&gt;compsize&lt;/code&gt;，可以更直觀看到 Btrfs 壓縮和去重後的真實占用：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo compsize &lt;span class=&#34;s2&#34;&gt;&amp;#34;/volume1/data1/aaa/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;它比普通 &lt;code&gt;du&lt;/code&gt; 更適合理解 Btrfs 上的實際占用情況。&lt;/p&gt;
&lt;h2 id=&#34;安全執行建議&#34;&gt;安全執行建議
&lt;/h2&gt;&lt;p&gt;建議按下面順序操作：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;先確認目標目錄在 Btrfs 卷上；&lt;/li&gt;
&lt;li&gt;先對一個小目錄測試，不要直接掃整個卷；&lt;/li&gt;
&lt;li&gt;排除系統隱藏目錄、資源回收筒和應用快取目錄；&lt;/li&gt;
&lt;li&gt;路徑包含中文或空格時使用雙引號；&lt;/li&gt;
&lt;li&gt;去重前記錄一次 &lt;code&gt;btrfs filesystem usage&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;去重後再次記錄並對比 &lt;code&gt;Used&lt;/code&gt; 和 &lt;code&gt;Free (estimated)&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;不確定參數含義時，先執行 &lt;code&gt;jdupes --help&lt;/code&gt; 看本機版本支援的過濾器。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;最推薦的群暉命令可以從這一條開始：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;jdupes -r -B -X nostr:/@eaDir/ -X nostr:/#recycle/ &lt;span class=&#34;s2&#34;&gt;&amp;#34;/volume1/data1/aaa/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果你的 &lt;code&gt;jdupes&lt;/code&gt; 版本不支援 &lt;code&gt;nostr&lt;/code&gt;，就根據 &lt;code&gt;jdupes -X&lt;/code&gt; 或 &lt;code&gt;jdupes --help&lt;/code&gt; 的輸出調整過濾參數。&lt;/p&gt;
&lt;h2 id=&#34;小結&#34;&gt;小結
&lt;/h2&gt;&lt;p&gt;Btrfs + &lt;code&gt;jdupes -B&lt;/code&gt; 的價值在於：不用刪除檔案，也不用把檔案改成硬連結，就能讓重複內容共享底層物理空間。&lt;/p&gt;
&lt;p&gt;對群暉、飛牛這類 NAS 使用者來說，它特別適合處理重複影視檔案、備份檔案和大體積素材目錄。真正需要注意的是掃描範圍和排除規則：優先處理使用者資料，避開系統快取和資源回收筒，去重前後用 Btrfs 工具對比空間變化。&lt;/p&gt;
&lt;p&gt;簡單說，想安全省空間，優先記住這一句：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;jdupes -r -B -X nostr:/@eaDir/ -X nostr:/#recycle/ &lt;span class=&#34;s2&#34;&gt;&amp;#34;/你的Btrfs数据目录/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
        </item>
        
    </channel>
</rss>
