科技 · 實用指南
sort 無法建立暫存檔?修改 TMPDIR 前先證明執行路徑與容量
解析失敗程序中 GNU sort 實際選到的目錄,檢查該檔案系統,並只在原命令產生可驗證輸出後接受修復。

GNU sort 在記憶體緩衝不足時可能把歸併段寫入暫存檔。「無法建立暫存檔」只表示建立失敗,不代表 /tmp 已滿,也不代表主機可見的 scratch 目錄存在於失敗容器或服務中。
保留完整命令與執行環境,推導有效暫存目錄,在同一執行環境檢查路徑,區分存在性、權限、區塊、inode 與配額,最後用原命令及輸出驗收。
凍結命令並推導有效目錄
保存 argv、工作目錄、環境、輸入輸出、stderr 與退出碼,記錄所有 -T 和變數展開。
依證據解析優先序:明確 -T、TMPDIR、最後 /tmp;空值或錯誤值也須保留。
在失敗執行環境檢查路徑
進入相同服務使用者、工作、容器與掛載命名空間,確認目錄與父層存在並查看程序自己的掛載視圖。
以失敗身分做建立、寫入、關閉、重新命名與刪除探針;主機 root 的成功不足以排除問題。
區分權限與容量
記錄擁有者、模式、ACL、唯讀旗標與限制策略;只修正已證明的身分或掛載規則。
在正確檔案系統記錄可用區塊與 inode,再查使用者、群組或專案配額。
選擇最小範圍修復
容器缺路徑時綁定核准 scratch;容量不足時處理所屬檔案系統;權限與配額只改對應政策。
只在替代檔案系統有意且容量足夠時使用 -T 或工作級 TMPDIR,並保留回復與清理計畫。
原樣重跑並驗證輸出
在原執行環境重跑原命令,記錄有效目錄、掛載、stderr、退出碼與暫存空間行為。
核對筆數、排序鍵、重複政策、校驗或下游解析與原子發佈;路徑仍不清或輸出無法對帳就停止。
