在Linux下複製檔案時如何保留Windows檔案屬性?

在Linux下複製檔案時如何保留Windows檔案屬性?

我正在使用在 Linux 電腦上運行的自訂 Bash 腳本來批量複製 FAT32 格式的 USB 磁碟機。

我需要保留 Windows 檔案屬性,例如「隱藏」。

我使用rsync(或在較新版本中使用和dd強制I/O 同步以獲得更好的穩定性和最佳頻寬使用)。findmkdir

我盲目地嘗試-X-A切換為rsync,據說可以保留一些文件屬性,但它們似乎不適用於 Windows 文件屬性。

有沒有辦法在Linux環境下讀寫Windows檔案屬性?

如果沒有更簡單的方法,我可以在複製後應用它們。

我不想要dd整個原始檔案系統,因為這將嚴重未最佳化,特別是當您需要寫入數百個磁碟機時。有時,驅動器的容量為 16GB,但其上只有幾 GB 的檔案 - 傻瓜dd會複製所有 16GB,這需要很長時間才能在生產中發揮作用。

我在網路上搜尋過,但看起來Linux擴充功能屬性與Windows檔案屬性無關,而且我還沒有找到任何方法來讀取和寫入這些資訊(或只是將其與檔案一起複製)。

答案1

我可以想出幾種方法來處理這個問題。

第一個是使用工具複製文件。為此,您需要定義“驅動器”(例如 A:對於來源驅動器,B:對於目標驅動器),那麼您應該能夠複製所有內容,保留屬性和時間戳,使用

mcopy -s -p -m a: b:

(未經測試)。

fatattr第二種是使用(在大多數發行版中可用)對屬性進行後處理。它處理已安裝的檔案系統,因此您可以按照目前的方式複製檔案系統,然後用於fatattr列出所有來源檔案的所有 FAT 屬性,並解析它以指示fatattr在目標檔案上適當設定屬性。

相關內容